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 |
댓글