javascript的加密方式---开发实战

在项目中需要加密使用到了js-md5不对称加密方式:
项目安装
yarn add 'js-md5'
安装完项目中引入
import md5 from 'js-md5';
this.password = "34343344"
const passwordmd5 = md5(this.password);

md5加密原理:
MD5加密算法
Message-Digest-Algorithm 信息摘要算法第五代。属于Hash算法一代,是一种单向加密算法,可以将输入的信息加密转换为128位固定长度的散列值,用于检验数据传输过程中的完整性。

功能:

输入任意长度的信息,经过处理,输出都是128位的信息值
不同的输入对应的输出一定不同,保证唯一性
争议:

MD5属不属于加密算法,因为只可以加密,无法获得密码原文,只能属于算法。
另一种观点,正因为看不到原文,使得原文得到加密处理。
个人观点:对于公司的用户,采用MD5是可以放心的,第一,对于黑色截获MD5后很难破解。第二,对于商家内部,只能获得用户加密后的密文,无法看到用户的真实密码,这也是对用户信息的一定保护。
MD5的优势:
防止被篡改,在传输过程中一旦被串改,那么计算出的MD5值一定不同。
计算速度快。加密速度快,不需要秘钥。
检查文件的完整性,一旦文件被更改,MD5值也是不同的。
防止看到明文,公司存放密码存放的是MD5值。
防止抵赖,用于数字签名,一旦用户的文件被第三方MD5加密,若以后A说这个文件不是他写的,那么当用文件MD5后获得的签名一致,可以确认。

MD5的实现原理:
填充:将输入信息进行512求余分组,若不等于448,那么进行填充 1 和0,一个1 N个0。最后的数据就为N*512+448
记录信息长度:将得到的信息用64位存储填充之前的信息长度,这样448+64=512,总信息为N+1个512
以四个常数ABCD与每组512位进行函数运算,最后输出的结果就是4组32位的常数。拼接得到MD5码
MD5的缺点:
作为一种散列算法,虽然很难发生散列碰撞,但是经过证实,仍然存在两种不同数据会发生碰撞。
MD5的安全性:将用户的密码直接MD5后存储在数据库是不安全的。第一,用户普遍习惯用容易记忆的密码,生日,手机号等,黑客容易破译此类密码。这也是加盐值的一个原因。第二,直接MD5存入数据库,若数据库被破解,通过MD5反查会查到密码,需要随机盐值的配合。

更多加密方式请看:
https://blog.csdn.net/weixin_38035852/article/details/81667160

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

追逐梦想之路_随笔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值