微信小程序 如何把使用MD5加密emjoy字符串,比如'Stefan👣'
发布于 6 年前 作者 mzeng 5425 次浏览 来自 问答

最近在获取到微信的昵称后,需要使用MD5加密传给后台,但是发现小程序直接使用可以加密中英文的md5.js来加密还有emjoy字符串的昵称,与服务器的加密不一致。有想法把emjoy字符串转成base64,但是发现没有emjoy字符串base64转换的js,所以想咨询一下,emjoy字符串在小程序中,改如果进行MD5加密或者改怎么转换成base64

5 回复

老哥,我用的你的方法,中文+emoji混合解析出来的串再显示的中文部分会是乱码,英文+emoji就不会,难道是只针对emoji解析的?

md5加密不是不可逆的吗?还可以反转?emjoy表情可以直接存进数据库  utf8mb4

各位已经解决了,需要把昵称整个转换成unicode,然后在进行MD5加密就可以了!使用的js如下:

module.exports = function (emoji) {

var backStr = “”

if (emoji && emoji.length > 0) {

for (var char of emoji) {

var index = char.codePointAt(0)

if (index > 65535) {//转换emjoy字符串的

var h = ‘\\u’ + (Math.floor((index - 0x10000) / 0x400) + 0xD800).toString(16);

var c = ‘\\u’ + ((index - 0x10000) % 0x400 + 0xDC00).toString(16)

backStr = backStr + h + c

} else {

var ss = ‘\\u00’ + index.toString(16)

backStr = backStr + ss

}

}

}

return backStr

}

js端对昵称 encodeURI 加密,后端进行解密,测试可行

回到顶部