16.JavaWeb-加密

1.加密的概念

        加密是指将数据转换为无法直接读取或理解的形式,以保护数据的安全性和机密性。加密可以防止未经授权的人员访问和理解敏感数据,即使数据在传输过程中被窃取,也无法解读其中的内容。

1.1 加密的分类

        在软件开发中,常见的加密技术包括对称加密和非对称加密

1.1.1 对称加密

        使用相同的密钥对数据进行加密和解密。发送方和接收方必须共享同一个密钥。常见的对称加密算法有DES、AES等。

AES (Advanced Encryption Standard)推荐使用密钥长度为 128 比特、192 比特或 256 比特
3DES (Triple Data Encryption Standard)推荐使用密钥长度为 168 比特

1.1.2 非对称加密

        使用公钥和私钥两个不同的密钥进行加密和解密。发送方使用接收方的公钥加密数据,接收方使用自己的私钥解密数据。常见的非对称加密算法有RSA、ECC等。

RSA (Rivest-Shamir-Adleman)推荐使用密钥长度为 2048 比特或更长,较高的密钥长度提供更高的安全性
ECC (Elliptic Curve Cryptography)推荐使用椭圆曲线参数的长度,如 NIST 推荐的 P-256、P-384 或 P-521

1.1.3 散列函数

        散列函数单项不可逆,主要应用是数据完整性校验和唯一标识。通过比较散列值,可以验证数据在传输或存储过程中是否发生了变化

SHA-256 (Secure Hash Algorithm)常用于生成消息摘要,长度为 256 比特
SHA-3 (Secure Hash Algorithm 3)提供不同长度的散列函数,如 SHA3-256、SHA3-384 和 SHA3-512

1.2 加密流程

        [此处以MD5为例]

        MD5 (Message Digest Algorithm 5) 是一种广泛使用的散列函数,用于生成消息的摘要或哈希值。然而,需要注意的是,MD5 不是一个安全的加密算法,因为它存在多个漏洞,容易受到碰撞攻击和预映像攻击。因此,在安全性要求较高的情况下,不建议使用 MD5 进行加密。

        1.导入DigestUtils类(这是Spring Framework 提供的一个实用类,用于进行各种散列算法的哈希操作,如MD5、SHA-1、SHA-256 等)

import org.springframework.util.DigestUtils;

        2.调用MD5的方法加密

DigestUtils.md5DigestAsHex("要加密的数据".getBytes());

        3.获取用户输入的数据并加密对比两者是否相等

if(user!=null && DigestUtils.md5DigestAsHex(loginVo.getPassword().getBytes()).equals(user.getPassword()))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值