Cryptography 将哈希字符串转换为类似密码的字符串

Cryptography 将哈希字符串转换为类似密码的字符串,cryptography,passwords,password-encryption,Cryptography,Passwords,Password Encryption,我有一个使用SHA1的哈希字符串。我想把这个字符串转换成一个类似密码的字符串,意思是大约8个字符,包括上、下字符和特殊字符 您可以使用将散列的最后8个字节编码为10个ASCII字符 您应该知道,如果最初散列的字符序列是可预测的(例如,它是一个单词或短语,或常用密码),那么从10个字符的字符串中很容易猜出。即使原始字符串是随机生成的,找到另一个生成相同截断哈希的字符串也相对容易 换句话说,这种技术不能用于任何需要安全性的事情。您可以使用它将散列的最后8个字节编码为10个ASCII字符 您应该知道,

我有一个使用SHA1的哈希字符串。我想把这个字符串转换成一个类似密码的字符串,意思是大约8个字符,包括上、下字符和特殊字符

您可以使用将散列的最后8个字节编码为10个ASCII字符

您应该知道,如果最初散列的字符序列是可预测的(例如,它是一个单词或短语,或常用密码),那么从10个字符的字符串中很容易猜出。即使原始字符串是随机生成的,找到另一个生成相同截断哈希的字符串也相对容易

换句话说,这种技术不能用于任何需要安全性的事情。

您可以使用它将散列的最后8个字节编码为10个ASCII字符

您应该知道,如果最初散列的字符序列是可预测的(例如,它是一个单词或短语,或常用密码),那么从10个字符的字符串中很容易猜出。即使原始字符串是随机生成的,找到另一个生成相同截断哈希的字符串也相对容易


换句话说,这种技术不能用于任何需要安全性的事情。

SHA-1哈希函数的输出大小为160位。8个字符的密码的熵介于48位和64位之间。您计划如何将哈希值减少为“密码”?你为什么要这样做?这应该是可逆的吗?有必要了解您想要实现什么以及为什么要提供某种帮助Base64对前6个SHA1字节进行编码。但是,根据您的使用情况,这很可能是非常不安全的。我投票将这个问题作为离题题来结束,因为它是关于安全性/编码的,最好在security.SE站点询问。这不应该是可逆的。SHA-1哈希函数的输出大小为160位。8个字符的密码的熵介于48位和64位之间。您计划如何将哈希值减少为“密码”?你为什么要这样做?这应该是可逆的吗?有必要了解您想要实现什么以及为什么要提供某种帮助Base64对前6个SHA1字节进行编码。但是,根据您的使用情况,这可能非常不安全。我投票将此问题作为离题题结束,因为它是关于安全性/编码的,最好在security.SE网站上提问。这不应该是可逆的。如果人类要输入结果是更好的解决方案,则省略以下类似的字母:0(零),O(大写字母o)、I(大写字母I)和l(小写字母l)以及非字母数字字符+(加号)和/(斜线)。对于一般计算机用户来说,Base85有许多更容易混淆的字符,例如.,-,:,+,=,^,!,/,*,?,&,(,),[,,,,{,},@,%,$,#。“这意味着大约有8个字符,包括上、下字符和特殊字符。“快速,“Il”,大写字母i,小写字母L?Base85不是供人们输入的,Base58是,现在是。但是,也许OP不会使用这些字符进行人工输入。没错。OP没有给出任何理由来假设任何关于安全性或用户交互的内容。我们所拥有的只是对特殊字符的明确要求,以及它们的密码倾向性缺点。如果人类要输入结果是一个更好的解决方案,则省略以下类似的字母:0(零)、O(大写O)、I(大写I)和l(小写l)以及非字母数字字符+(加)和/(斜杠)对于一般计算机用户来说,.Base85有许多更容易混淆的字符,例如.,-,:,+,=,^,!,/,*,?,&,(,),[,],{,},@,%,$,#。“这意味着大约有8个字符,包括上、下字符和特殊字符。”快速,“Il”,大写字母i,小写字母L?Base85不是供人们输入的,Base58是,现在是。但是,也许OP不会使用这些字符进行人工输入。没错。OP没有给出任何理由来假设任何关于安全性或用户交互的内容。我们所拥有的只是对特殊字符的明确要求,以及它们的密码倾向性缺点。