在python和nodejs之间的base64中md5和编码的区别是什么

时间:2016-07-06 16:20:08

标签: python node.js base64 md5 encode

我尝试在NodeJs中编写这个Python代码,但我发现我在nodeJs中使用md5encode in base64的方法,但输出与Python的方法不同。

有人告诉我如何在NodeJs中处理这个问题吗?

import md5
def encrypted_id(id):
    byte1 = bytearray('3go8&$8*3*3h0k(2)2')
    byte2 = bytearray(id)
    byte1_len = len(byte1)
    for i in xrange(len(byte2)):
        byte2[i] = byte2[i]^byte1[i%byte1_len]
    m = md5.new()
    m.update(byte2)
    result = m.digest().encode('base64')[:-1]
    result = result.replace('/', '_')
    result = result.replace('+', '-')
    return result

这是我的JS代码:

function encryptedId(dfsId) {
    const byte1 = '3go8&$8*3*3h0k(2)2'
    const byte2 = dfsId.toString()
    const byte1_len = byte1.length
    const arr = byte2.split('').map((c,i) => {
        return byte2.charCodeAt(i) ^ byte1[i%byte1_len].charCodeAt(0)
    })
    const newByte2 = String.fromCharCode.apply({}, arr)
    let encode = Util.md5(newByte2)
    return Util.base64encode(encode, true).slice(0, -1)
}

0 个答案:

没有答案