Hash 正确的哈希算法/函数

Hash 正确的哈希算法/函数,hash,language-agnostic,passwords,perl,Hash,Language Agnostic,Passwords,Perl,是否有任何安全的哈希算法/函数可以给出所有字母和数字,而不仅仅是0-9,a-f 因此,输出可以包含:0-9、a-z、a-z甚至一些符号。任何哈希算法,真的 十六进制只是它们的常见表示形式。请看使用,因为您没有标记编程语言: 使用摘要::MD5 qw/MD5 md5u hex/; 使用MIME::Base64; 我的$str='Foobar'; 十六进制表示法 打印md5_十六进制$str\n; Base64编码表示 打印encode_base64md5$str; 输出: 89d5739baabb

是否有任何安全的哈希算法/函数可以给出所有字母和数字,而不仅仅是0-9,a-f


因此,输出可以包含:0-9、a-z、a-z甚至一些符号。

任何哈希算法,真的

十六进制只是它们的常见表示形式。请看使用,因为您没有标记编程语言:

使用摘要::MD5 qw/MD5 md5u hex/; 使用MIME::Base64; 我的$str='Foobar'; 十六进制表示法 打印md5_十六进制$str\n; Base64编码表示 打印encode_base64md5$str; 输出:

89d5739baabbbe65be35cbe61c88e06d
idVzm6q7vmW+NcvmHIjgbQ==
第一个输出是字符串MD5摘要的十六进制表示形式;第二个是原始摘要的Base64编码表示


这适用于任何消化算法。但是,它不会影响底层算法的实际安全性。

使用您最喜欢的哈希算法/函数,并将输出转换为base64。在Java中实现这一点的机制如下:


请注意,哈希值仍将相同,但表示形式将不同。如果你想使用更完整的符号集,也许你可以编辑你的问题。

你想找到一个算法,而不是使用任何语言的一些内置类型,这有什么原因吗?这促使我研究base 64,它完全符合我的需要。如果你想设计自己的哈希算法,你没有博士学位。关于数学和十年的密码学经验,请阅读以下内容: