일반 텍스트를 암호화하는 데 문제가 있습니다.파이썬과 자바 스크립트에서 SHA256 해시를 생성하면 다른 결과가 발생합니다
내가 뭘 파이썬에서 뭐하는 거지 :
def encrypt(plaintext):
import hashlib, base64
hashed = hashlib.sha256(plaintext).digest()
return base64.b64encode(hashed)
def main():
input_value = "a"
output = encrypt(plaintext=input_value)
print output
if __name__ == "__main__":
main()
결과를 파이썬 :
ypeBEsobvcr6wjGzmiPcTaeG7/gUfE5yuYB3ha/uSLs=
내가 JS에서 뭐하는 거지 :
var result = '';
var plaintext = 'a';
if(plaintext != null && plaintext != undefined) {
var hashed = CryptoJS.SHA256(plaintext);
result = hashed.toString(CryptoJS.Base64);
}
alert(result);
결과 JS에서 :
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
누구나 내가 뭘 잘못하고 있는지 아이디어가 있습니까?
두 언어로 동일한 암호화 결과를 얻는 방법이 있습니까?
덧붙여서 : 나는 이미 데이터베이스에 CryptoJS로 암호화 된 값을 가지고 있기 때문에 파이썬 코드를 변경하는 것이 더 쉬울 것입니다.
의견을 보내 주셔서 감사합니다. 그것은 단순히 내 코드에서 복사 및 붙여 넣기 오류가 발생했습니다. "output = encrypt (plaintext = input_value)"이어야합니다. – gimlithedwarf