import requests, urllib, json import base64 import pyDes class DES: def __init__(self, iv, key): self.iv = iv self.key = key def encrypt(self, data): k = pyDes.des(self.key, pyDes.ECB, self.iv, pad=None, padmode=pyDes.PAD_PKCS5) d = k.encrypt(data) d = base64.encodestring(d) return d def decrypt(self, data): k = pyDes.des(self.key, pyDes.ECB, self.iv, pad=None, padmode=pyDes.PAD_PKCS5) d = k.decrypt(data) return d iv = "AAAAAAAA" key = '=%l^:R?k' des = DES(iv, key) decryptdata = des.decrypt(data)
ECB 모드는 IV값에 무엇을 적어도 영향을 받지 않는다. 그러니 복호화할 경우가 있으면 IV값은 신경을 쓰지 않아도 된다.
ECB , CBC 의 차이는 아래 사진에서 확인 가능하다.
<Figure 0. "Block cipher modes of operation" - Wiki 참조>
반응형
'프로그래밍' 카테고리의 다른 글
안드로이드 8.1 오레오(Oreo) AOSP 빌드 (feat. 통화녹음을 하자.) (2) | 2018.04.02 |
---|---|
Visual Studio / x64 아키텍쳐에서 어셈블리어를 사용하기 | 소스코드정렬 (0) | 2018.02.27 |
[Python] AES 예제 (0) | 2018.02.06 |
[kernel] PsSetLoadImageNotifyRoutine 와 PsSetCreateProcessNotifyRoutine (0) | 2018.02.01 |
메모리 에디터 개발 (0) | 2017.02.24 |
댓글