본문 바로가기
프로그래밍

[Python] DES 예제

by dladbru 2018. 2. 6.
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 참조>

반응형

댓글