先用 sha256 得到 二进制数据,然后使用 base64 对 二进制数据编码。
使用以下的代码,3 种语言加密的结果是一样的。有利于平台之间的一致性。
def hash_key(self, msg, secret='2021'):
import hmac
import hashlib
import base64
dig = hmac.new(bytes(secret.encode()), msg=msg.encode(), digestmod=hashlib.sha256).digest()
return base64.b64encode(dig).decode()
参考:
https://www.php.net/manual/zh/function.hash-hmac.php
function hash_key($secret, $content)
{
$hash = hash_hmac('sha256', $content, $secret, true);
return base64_encode($hash);
}
参考:
https://www.npmjs.com/package/js-sha256
function arrayBufferToBase64( buffer ) {
let binary = '';
const bytes = new Uint8Array( buffer );
const len = bytes.byteLength;
for (let i = 0; i < len; i ++) {
binary += String.fromCharCode( bytes[ i ] );
}
return window.btoa( binary );
}
function hash_key(secret, content) {
var hash = sha256.hmac.create(secret)
hash.update(content)
return arrayBufferToBase64(hash.digest())
}
var secret = '2021';
var content = 'LSL701T0B0B9J00228';
var key = hash_key(secret, content)
console.log(key)
墨之科技,版权所有 © Copyright 2017-2027
湘ICP备14012786号 邮箱:ai@inksci.com