【问题标题】:Encoding type, how to determine [closed]编码类型,如何确定[关闭]
【发布时间】:2022-01-08 10:31:15
【问题描述】:

晚上好,

我想知道如何保护我的程序。如果未经授权的人可以猜出我们使用的是哪种编码类型?因为我对用户在注册期间提供的密码进行哈希处理并保存到保存在程序文件夹/文件中的列表。 但是如果有人得到这个文件,我担心有人会破坏这个安全算法。

下面我将展示下面的示例密码和我的脚本的输出以对其进行编码。你能帮我吗,哪种方法更好地使我的编码不易破解? :) 并质疑下面的示例是否明显适合您,首先看看这个,您知道编码类型吗?

TestLocal1957!      --->    =CDF37717CE5C1947DD8794DFFA5732823C

LocalTest1957!      --->    =4FC1B5E2DB54173B5903105B7ED3B63E86

【问题讨论】:

  • 只需使用正确的密码哈希,如 argon2。
  • 好的,我会读一读。我看到使用随机部分? (盐)但是现在,如果你看看我的例子,你知道我用过什么或者很难找到吗?
  • 不可能通过盯着它的输出来确定算法的强度(除非它有缺陷以至于它立即显示出结构)。一般采用Kerckhoffs原理,算法本身应该是常识。

标签: security hash cryptography


【解决方案1】:

在密码学中,我们依赖于公开的算法,并且已经对安全性进行了广泛的分析。我们假设所有攻击者都确切地知道算法和任何相关代码是如何工作的,即使知道这一点,他们也无法在不知道密钥或其他秘密的情况下破坏安全性。这称为Kerckhoff's principle

有些人确实尝试编写自己的秘密算法,但在许多情况下,代码泄漏或被逆向工程,然后每个人都知道它是如何工作的。这种情况发生的频率比人们预期的要多。这些算法总是完全不安全的,然后数据的安全性就会受到损害。以安全的方式使用著名的、受人尊敬的算法要好得多,因为您基本上拥有地球上一些无法破解算法的最优秀和最聪明的人,您还可以向其他人宣传您的方法的安全性。

对于密码哈希,使用 Argon2id 或 scrypt 是一个不错的选择,因为它们使暴力破解变得困难并且被认为是健壮的。这些是内存硬函数,旨在使使用 GPU 进行暴力破解变得困难或不可行。

请注意,我们无法仅通过查看其输出来判断算法的安全性,除非它真的很糟糕。例如,如果您使用带有固定密钥的 HMAC-SHA-256 对密码进行哈希处理,则输出似乎与随机无法区分,但由于以这种方式存储的暴力破解密码非常容易并且不使用盐,这不是一种安全的方法。

【讨论】:

    猜你喜欢
    • 2021-06-04
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2015-05-20
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    相关资源
    最近更新 更多