WEB应用中常用的加密算法

AES

高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图。
在这里插入图片描述

AES加密后的长度变化

如果需要进一步编码为可显示字符串,则需进行BASE64编码或者十六进制编码。编码后的数据长度会进一步增加(BASE64是增长为4/3倍起的最小的4的倍数,十六进制编码是增长为2倍)。比如,对原文长度在32-47个字节之间的明文,经过AES256JNCryptor加密后的密文长度就是114个字节,再做一次BASE64编码转换成可显示字符就成了152个字符。
原明文长度 -> AES密文长度 -> BASE64编码长度
0-15 chars -> 82 bytes -> 112 chars
16-31 chars -> 98 bytes -> 132 chars
32-47 chars -> 114 bytes -> 152 chars
48-63 chars -> 130 bytes -> 176 chars
64-79 chars -> 146 bytes -> 196 chars

112-127 chars -> 194 bytes -> 260 chars

JDK256位AES支持

如果修改为32位或者更高位的的将会报java.security.InvalidKeyException: Illegal key size
解决办法:
下载对应的jar文件替换原有的,
jdk1.8的http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html。
其他版本的与之类似,下载好后解压,主要用到local_policy.jar和US_export_policy.jar,将其复制到JAVA_HOME下的\jre\lib\security中替换,即可。
在这里插入图片描述

RSA

RSA 加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法。非对称加密是通过两个密钥(公钥-私钥)来实现对数据的加密和解密的。公钥用于加密,私钥用于解密。
在这里插入图片描述
在这里插入图片描述

CRC

循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。

MD5

MD5 常常作为文件的签名出现,我们在下载文件的时候,常常会看到文件页面上附带一个扩展名为.MD5 的文本或者一行字符,这行字符就是就是把整个文件当作原数据通过MD5 计算后的值,我们下载文件后,可以用检查文件MD5 信息的软件对下载到的文件在进行一次计算。两次结果对比就可以确保下载到文件的准确性。 另一种常见用途就是网站敏感信息加密,比如用户名密码,支付签名等等。随着https 技术的普及,现在的网站广泛采用前台明文传输到后台,MD5 加密(使用偏移量)的方式保护敏感数据保护站点和数据安全。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值