背景:java的解密加密和js的对应这里做个记录,这里加密hello字符串为示例
CryptoJS.enc.Base64.stringify
对应的加密示例
js
加密
sign = 'hello';
var signmd5 = CryptoJS.MD5(sign);
var signbase64 = CryptoJS.enc.Base64.stringify(signmd5)
console.log("signmd5 = "+signmd5);
console.log("signbase64 = "+signbase64);
输出
signmd5 = 5d41402abc4b2a76b9719d911017c592
signbase64 = XUFAKrxLKna5cZ2REBfFkg==
java
加密
这里注意包的选择,转md5
和base64
用的是spring包下的,在转base64
之前做了个byte
转换用的是apache.commons.codec
包下的。
import org.apache.commons.codec.digest.DigestUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
@SpringBootTest
class Utils2Tests {
@Test
public void test1() throws UnsupportedEncodingException {
String str = "hello";
String md5 = org.springframework.util.DigestUtils.md5DigestAsHex(str.getBytes("utf-8"));
byte[] sign = DigestUtils.md5(str);
String encodedString = Base64.getEncoder().encodeToString(sign);
System.out.println("md5 = "+md5);
System.out.println("base64 = "+encodedString);
}
}
输出
md5 = 5d41402abc4b2a76b9719d911017c592
base64 = XUFAKrxLKna5cZ2REBfFkg==
至此
js
和java
加密一致的方法结束
CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse())
对应的加密示例
js
加密
sign = 'hello';
var signmd5 = CryptoJS.MD5(sign);
var signbase64 = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(signmd5));
console.log("signmd5 = "+signmd5);
console.log("signbase64 = "+signbase64);
输出
可以看到和最开始js加密的结果不一致,这里得到的是NWQ0MTQwMmFiYzRiMmE3NmI5NzE5ZDkxMTAxN2M1OTI=
然而最开始js加密结果是XUFAKrxLKna5cZ2REBfFkg==
signmd5 = 5d41402abc4b2a76b9719d911017c592
signbase64 = NWQ0MTQwMmFiYzRiMmE3NmI5NzE5ZDkxMTAxN2M1OTI=
java
加密
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.util.DigestUtils;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
@SpringBootTest
class Utils2Tests {
@Test
public void test1() throws UnsupportedEncodingException {
String sign = "hello";
String md5 = DigestUtils.md5DigestAsHex(sign.getBytes("utf-8"));
System.out.println("md5 = "+md5);
String encodedString = Base64.getEncoder().encodeToString(md5.getBytes());
System.out.println("base64 = "+encodedString);
}
}
输出
可以看到和上面的js加密结果一致
md5 = 5d41402abc4b2a76b9719d911017c592
base64 = NWQ0MTQwMmFiYzRiMmE3NmI5NzE5ZDkxMTAxN2M1OTI=