250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- livedata
- Kotlin
- DART
- LifeCycle
- Button
- android
- tabbar
- TEST
- activity
- data
- appbar
- intent
- Navigation
- 앱
- 안드로이드
- 앱바
- viewmodel
- drift
- 계측
- 테스트
- Coroutines
- Dialog
- binding
- ScrollView
- textview
- textfield
- CustomScrollView
- scroll
- Compose
- Flutter
Archives
- Today
- Total
Study Record
[암호 프로그래밍] 3DES-CBC 암호화 / 복호화 프로그램 본문
728x90
- API 참고
# TDES-CBC
# Block Cipher : DES3
# input : 8 bytes
# output : 8 bytes
# key : 8 bytes x 3 = 24 bytes(k1, k2, k3)
# Block Cipher Mode : CBC
# IV : 8 bytes
# pad, unpad
from Crypto.Cipher import DES3
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
class MyDES3:
# variable : msg, key, iv
# function : encrypt, decrypt
def __init__(self, key, iv):
self.key = key
self.iv = iv
def enc(self, msg):
return DES3.new(self.key, DES3.MODE_CBC, self.iv).encrypt(pad(msg.encode(), 8))
def dec(self, encMsg):
return unpad(DES3.new(self.key, DES3.MODE_CBC, self.iv).decrypt(encMsg), 8).decode()
"""
plaintext = "We are no longer the knights who say ni!"
key = get_random_bytes(24)
iv = get_random_bytes(8)
des = MyDES3(key, iv)
encMsg = des.enc(plaintext)
decMsg = des.dec(encMsg)
print(plaintext)
print(encMsg)
print(decMsg)
"""
728x90
'암호 > 프로그래밍' 카테고리의 다른 글
[암호 프로그래밍] RSA를 이용한 암/복호화 , 서명 (0) | 2021.12.08 |
---|---|
[암호 프로그래밍] 인코딩/디코딩 프로그램 (0) | 2021.12.07 |
[암호 프로그래밍] AES 암호화/복호화 프로그램 (0) | 2021.12.03 |
[암호 프로그래밍] 사전파일을 이용한 공격 프로그램 - gpg (0) | 2021.12.02 |
[암호 프로그래밍] 사전파일을 이용한 공격 프로그램 - ccrypt (0) | 2021.12.02 |