什么是哈希(Hsah)算法,哈希算法的作用以及Java中常见的哈希算法的使用案例。

一、了解哈希算法

1、简介

        Hash算法(又称摘要算法),一般翻译做散列或音译为哈希,哈希算法具有不可逆性、压缩性、高效性等重要特点,可以将任意长度的数据转换成一个固定长度的哈希值。该输出就是散列值。这种转换是一种压缩映射,一般输出长度会远远小于输入长度,不同的输入大概率会产生不同的输出(由于哈希冲突,可能会造成不同输入相同输出的情况发生),故不能通过散列值来确定唯一值,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

2、哈希碰撞

        什么是哈希碰撞?当我们对一个元素进行哈希运算时得到了一个储存地址,但该地址已经被其他元素占用,当我们对key1和key2进行Hash运算时,key1 ≠ key2时但计算的f(key1)=f(key2),即发生了哈希碰撞,也叫哈希冲突。哈希碰撞不可被避免,因为输出的散列值长度是固定的,但输入值的数量是无穷的,无限的输入散列到有限的输出中必将产生产生重复值,但可以通过对算法的优化减少哈希碰撞。

3、哈希算法的作用

        哈希算法可以用于用户密码的安全存储和验证。具体实现方法为将用户密码经过哈希算法处理得到哈希值,然后将这个哈希值存储在数据库中。用户登录时,输入密码后,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

‏猿究院Sublate

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值