正确的哈希算法/函数

时间:2014-07-21 00:05:07

标签: hash language-agnostic passwords

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

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

2 个答案:

答案 0 :(得分:2)

任何哈希算法,确实。

十六进制只是它们的常见表示。查看this code snippet(使用,因为您没有标记编程语言):

use Digest::MD5 qw/md5 md5_hex/;
use MIME::Base64;

my $str = 'Foobar';

# Hexadecimal representation
print md5_hex($str),"\n";

# Base64 encoded representation
print encode_base64(md5($str));

输出:

89d5739baabbbe65be35cbe61c88e06d
idVzm6q7vmW+NcvmHIjgbQ==

第一个输出是字符串的MD5摘要的十六进制表示;第二个是原始摘要的Base64编码表示。

这适用于任何摘要算法。但是,它不会影响基础算法实际的安全性。

答案 1 :(得分:0)

使用您喜欢的散列算法/函数并将输出转换为base64。在Java中执行此操作的机制如下:how to convert hex to base64

请注意,哈希值仍然相同,但演示文稿会有所不同。如果您有理由想要使用更全面的符号集,也许您可​​以编辑您的问题。