java变短加密解密算法_java----加密解密常⽤算法
⼀、常⽤的加密/解密算法
1.Base64
严格来说,Base64不是⼀种加密/解密算法,⽽是⼀种编码⽅式,多⽤于解决中⽂乱码中。
常⽤场景:对⽂件、URL等进⾏Base64编码,以字符串⽅式发送给对⽅;对⽅在进⾏解码。
2.AES
AES是⽬前⽤的⽐较⼴泛的⼀种加密/解密算法。先来⼀段代码
public class AESUtil {
@Value("${aes.key}")
String key;
byte[] iv = { 0x31, 0x35, 0x36, 0x33, 0x34, 0x33, 0x32, 0x31, 0x37, 0x37, 0x39, 0x35, 0x34, 0x33, 0x30, 0x31 };
public String encrypt(String content) {
try {
Security.addProvider(new BouncyCastleProvider());
Key secretKeySpec = new Bytes(), "AES");
Cipher in = Instance("AES/CBC/PKCS7Padding","BC");//算法/模式/补码⽅式
in.init(Cipher.ENCRYPT_MODE, secretKeySpec, new IvParameterSpec(iv));//使⽤CBC模式,需要⼀个向量iv,可增加加密算法的强度
byte[] enc = in.Bytes());
return new de(enc));
} catch (Exception e) {
<("加密遇到异常",e);
throw new RuntimeException(e);
}
}
public String decrypt(String encryptContent){
try {
Security.addProvider(new BouncyCastleProvider());
Key secretKeySpec = new Bytes(), "AES");
byte[] enc = Hex.Bytes());
Cipher out = Instance("AES/CBC/PKCS7Padding", "BC");//算法/模式/补码⽅式
out.init(Cipher.DECRYPT_MODE, secretKeySpec, new IvParameterSpec(iv));//使⽤CBC模式,需要⼀个向量iv,可增加加密算法的强度
byte[] dec = out.doFinal(enc);
return new String(dec);
java加密方式有哪些}catch (Exception e){
<("解密遇到异常",e);
throw new RuntimeException(e);
}
}
}
由上⾯的代码可知,加密所需要的参数有:content(需要被加密的字符串)、key(加密需要的密码)。key是⾃⼰设置的,所以对content加密后,如果不知道key的话,很难解密出来。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论