Laravel의 암호화 모듈과 호환되는 해시를 만들려고합니다. https://github.com/illuminate/encryption/blob/master/Encrypter.php#L101-163 다음호환성 AES-256-CBC 노드/Laravel
내가 통해 올 한 것입니다 : 여기 Laravel의 참조 소스 코드 불행하게도
const encrypt = function (payload) {
const iv = crypto.randomBytes(16);
const key = new Buffer(config.stuff.key, 'base64');
const cipher = crypto.createCipheriv('aes-256-cbc', key, iv);
cipher.setAutoPadding(false); // With or without this /!\
let value = cipher.update(serialize(JSON.stringify(payload)), 'utf8', 'base64');
value + cipher.final('base64');
const mac = crypto.createHmac('sha256', new Buffer(config.stuff.key, 'base64')).update(iv.toString('base64') + value).digest('hex');
const json = JSON.stringify({ iv: iv.toString('base64'), value, mac });
return base64_encode(json);
};
, 나는 그 때 나는 BAD_DECRYPT 있습니다. 이것은 OpenSSL의 패딩에서 오는 것 같습니다. 누구나 아이디어가 있습니까?
참고 : base64_encode가 있고 phpjs 및 기타 항목의 함수 유틸리티를 serialize합니다. – Extaze