这段 Python 代码用 JS 怎么写呢, 试了下结果都不一样
就是这段 python 代码, 想用 js 写一遍
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)
}
其中的 Util.md5 和 base64encode 方法我用的是这里的 https://github.com/node-modules/utility, 就是最后两行代码输出不一样。。