java加密和js的CryptoJS加密

背景: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加密

这里注意包的选择,转md5base64用的是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==

至此jsjava加密一致的方法结束

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=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值