일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- viewmodel
- tabbar
- TEST
- 안드로이드
- Compose
- 앱바
- Kotlin
- Button
- CustomScrollView
- scroll
- 테스트
- android
- livedata
- 앱
- Navigation
- textview
- activity
- Coroutines
- DART
- intent
- textfield
- Flutter
- ScrollView
- appbar
- LifeCycle
- data
- drift
- 계측
- Dialog
- binding
- Today
- Total
목록암호/프로그래밍 (10)
Study Record
HMAC - SHA256 사용하기 from Crypto.Hash import HMAC, SHA256 message = b'hello' # message secretKey = b'secret' # key hMac = HMAC.new(secretKey, message, digestmod=SHA256) print(hMac.hexdigest()) HMAC - SHA256 유효성 검사 from Crypto.Hash import HMAC, SHA256 recMsg = b'hello' recvMac = '88aab3ede8d3adf94d26ab90d3bafd4a2083070c3bcce9c014ee04a443847c0b' secretKey = b'secret' hMac = HMAC.new(secretKey, recMs..
1. 작업 절차 1-1. 사전준비 Server 는 공개키 암호(RSA_OAEP)에서 사용할 privateKey 와 publicKey 를 새로 생성하거나 저장된 파일에서 가져온다. 1-2. 작업 과정 ① Server 는 Client 에게 public key 를 전송한다. ② Client 는 메시지 암/복호화에 사용할 대칭키를 만든다. ③ Client 는 난수 값(none) 과 대칭키를 이용하여 메시지(m)를 암호화(AES_CTR_E)하여 암호문(Msg_C)을 생성한다. ④ Client 는 Server 에게 보낼 대칭키를 Server 에게 받은 public key 를 이용하여 암호화(RSA_OAEP_E)하여 암호화한 대칭 키(Key_C)를 생성한다. ⑤ Client 는 난수 값(none), 암호문(Msg_C..
from Crypto.Hash import SHA256 as SHA # 입력값이 없는 경우에도 default 값이 있다! hash = SHA.new() print(hash.hexdigest()) # 해시함수 사용법1 hash2 = SHA.new() hash2.update(b'Hello') print(hash2.hexdigest()) # 해시함수 사용법2 hash3 = SHA.new(b'Hello') print(hash3.hexdigest()) # 해시함수 b'First', b'Second' 나중에 연결 hash4 = SHA.new() hash4.update(b'First') hash4.update(b'Second') print('Second :', hash4.hexdigest()) # 해시 객체를 만들고..
파일에 대한 해시값을 출력해주는 프로그램 사용법 : checkHash.py ex ) # checkHash.py /python/des.sh # vi checkHash.py #!/usr/bin/python3 import sys import os import subprocess def main(): if len(sys.argv) < 2: print("Usage: " + sys.argv[0] + " ") sys.exit(1) cmdList = ['md5sum', 'shasum', 'sha1sum', 'sha224sum', 'sha256sum', 'sha384sum', 'sha512sum'] for n in range(1, len(sys.argv)): fileName = sys.argv[n] if os.path...
RSA 를 이용한 암/복호화 from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP import os import sys def main(): mymsg = "samsjang loves python" prikey = RSA.generate(1024) pubkey = prikey.publickey() priPemFile = 'prikey.pem' pubPemFile = 'pubkey.pem' if os.path.exists(priPemFile) and os.path.exists(pubPemFile): print('[ OK ] key file exists.') else: createPEM(prikey, pubkey, priPemFile, ..
※ 사전 준비 Linux 에 hURL 설치 - https://laustudy.tistory.com/109 인코딩 디코딩 쉘 프로그램 만들기 # vi /python/enc.sh # vi /python/dec.sh #!/bin/bash if [ $# -le 0 ] ; then echo "$0 " exit 1 fi echo "========== URL encoding ===========" hURL -U "$@" echo; echo echo "========== BASE64 encoding ============" hURL -B "$@" echo; echo echo "========== HTML encoding =============" hURL -H "$@" echo; echo #!/bin/bash if [..
AES-CBC 암호화/복호화 프로그램 # AES-CBC # Cipher Algorithm : AES # * input : 16 bytes (128bits) # * output : 16 bytes (128bits) # * key : 128 bits(16), 192 bits(24), 256 bits(32) # * Cipher Mode : CBC # * iv : 16 bytes # * pad, unpad from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from Crypto.Util.Padding import pad, unpad class MyAES: # MyAES(keysize, ivsize) def __init__(self, ..
- 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.k..