여기에 같은 일반 텍스트를 암호화하기 위해 동일한 키와 IV를 사용하여 다른 결과를 얻을 것은 내 코드입니다 :AES 반복
from Crypto.Cipher import AES
import binascii
def encrypt(secret_key, sign, raw):
key = md5(secret_key).hexdigest()[::-2]
iv = md5(sign).hexdigest()[::-2]
raw += (16 - len(raw) % 16) * '\0'
generator = AES.new(key, AES.MODE_CBC, IV=iv)
#***********************************************
#Problems occur at here !
#If I execute "generator.encrypt(raw)"
#The results are not same every time
print generator.encrypt(raw) # result_1
print generator.encrypt(raw) # result_2
print generator.encrypt(raw) # result_3
#***********************************************
return binascii.b2a_hex(generator.encrypt(raw))
때마다 나는 "실행할 때 나는 다른 결과를 얻을 것이다 generator.encrypt (원시) " 동일한 KEY 및 IV를 사용했기 때문에 매우 혼란 스럽습니다.
API-SYSTEM을 구축하고 싶습니다. 어떤 언어를 사용 하던지간에 암호화 된 데이터를 게시해야하며, AES에서 동일한 결과를 얻고 싶습니다.
어떻게 AES를 사용하여 안정적인 결과를 얻을 수 있습니까?
동일한 KEY 및 IV를 사용하여 동일한 일반 텍스트를 암호화 할 때 동일한 결과를 얻고 싶습니다.
어딘가에 IV가 다시 초기화됩니다. Golang AES 구현에서이 문제가 발생했습니다. 각 단계에서 수행하는 작업을 확인하려면 문서를 검토해야합니다. –
발전기 = AES.new (key, AES.MODE_CBC, iv)로 AES.new (key, AES.MODE_CBC, IV = iv)를 변경하고 –