微信小程序MD5加密中文遇到的坑

在开发微信小程序时,使用MD5加密中文字符可能会遇到编码问题,导致加密结果不正确。本文将探讨这个问题的原因,以及如何解决在微信小程序环境下中文MD5加密的坑,确保数据安全性和正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var rotateLeft = function(lValue, iShiftBits) {
	return(lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
}
 
var addUnsigned = function(lX, lY) {
	var lX4, lY4, lX8, lY8, lResult;
	lX8 = (lX & 0x80000000);
	lY8 = (lY & 0x80000000);
	lX4 = (lX & 0x40000000);
	lY4 = (lY & 0x40000000);
	lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
	if(lX4 & lY4) return(lResult ^ 0x80000000 ^ lX8 ^ lY8);
	if(lX4 | lY4) {
		if(lResult & 0x40000000) return(lResult ^ 0xC0000000 ^ lX8 ^ lY8);
		else return(lResult ^ 0x40000000 ^ lX8 ^ lY8);
	} else {
		return(lResult ^ lX8 ^ lY8);
	}
}
 
var F = function(x, y, z) {
	return(x & y) | ((~x) & z);
}
 
var G = function(x, y, z) {
	return(x & z) | (y & (~z));
}
 
var H = function(x, y, z) {
	return(x ^ y ^ z);
}
 
var I = function(x, y, z) {
	return(y ^ (x | (~z)));
}
 
var FF = function(a, b, c, d, x, s, ac) {
	a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac));
	return addUnsigned(rotateLeft(a, s), b);
};
 
var GG = function(a, b, c, d, x, s, ac) {
	a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac));
	return addUnsigned(rotateLeft(a, s), b);
};
 
var HH = function(a, b, c, d, x, s, ac) {
	a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac));
	return addUnsigned(rotateLeft(a, s), b);
};
 
var II = function(a, b, c, d, x, s, ac) {
	a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值