Hash是什么?

Hash

Hash (散列函数)
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

简单的来说就是将输入进行压缩,hash常用来加密.

常见的hash有什么

HashMap,HashTable,HashSet都和Hash有关 可以看源码,有hash的使用

常用HASH函数
·直接取余法:f(x):= x mod maxM ; maxM一般是不太接近 2^t 的一个质数。
·乘法取整法:f(x):=trunc((x/maxX)*maxlongit) mod maxM,主要用于实数。
·平方取中法:f(x):=(x*x div 1000 ) mod 1000000); 平方后取中间的,每位包含信息比较多。

在HashMap中用到了直接取余

Hash常用来加密

比较熟悉的就是MD5,一般要用来加盐

SHA-1

写在最后

在后面的文章中会详细说明hash加密的常见加密算法

你可能感兴趣的:(JAVA)