파이썬[Python]: cryptography - rotate 메서드

cryptography 패키지 - fernet 모듈 - MultiFernet 클래스 - rotate 메서드(method)


/// 설명

최초에 생성된 비밀키에 새로운 키를 추가하여 새로운 비밀키를 만듭니다. 그리고 나서 새로운 키로 암호화된 메세지를 다시 새로운 암호문으로 만듭니다. 복호화는 새롭게 만들어진 키로만 복호화를 할 수 있습니다.

※ 형식
multifernet.rotate(msg)

reference
https://cryptography.io/en/latest/fernet/

/// 예제

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
from cryptography.fernet import Fernet, MultiFernet
 
test_str = b'This is a string'
 
# generating keys
test_key1 = Fernet(Fernet.generate_key())
test_key2 = Fernet(Fernet.generate_key())
test_list = [test_key1, test_key2]
 
test_encrypt = MultiFernet(test_list)
test_encrypted = test_encrypt.encrypt(test_str)
print(test_encrypted)
# b'gAAAAABhlP699zWXIgrw85lXu-Z7y3ykq55yS6gQh9_RYAeJG7nm3tCAJ_C8fIdlsUN_kVKfxxvYSm6d1m3PfUsjoErXZGHSjNT715i-Eq5mr0trZ90LVfU='
 
test_decrypted = test_encrypt.decrypt(test_encrypted)
print(test_decrypted)  # b'This is a string'
 
#--------- New Key Generation ------------------------
test_key3 = Fernet(Fernet.generate_key())
test_list.insert(0, test_key3)
 
test_encrypt2 = MultiFernet(test_list)
 
# test_encrypted(encrypted message) -> test_rotated(different encrypted message)
test_rotated = test_encrypt2.rotate(test_encrypted)
print(test_rotated)
# b'gAAAAABhlP69JXZTiDFYv8F5rCgrn_C0hpcbgk7u5tfK_tnKdG3z2K-I-gMykboZiHErdOeGz8KWG8JReJ5iOwRejztkDEtgXS9MkK9JRPi3yE2Bj3mPpnY='
print(test_encrypt2.decrypt(test_rotated))  # b'This is a string'
 
cs

* 실행환경: Microsoft Windows 10 Homes
* 인터프리터: 파이썬(Python 3.9)


– 당신을 응원합니다. –

댓글

이 블로그의 인기 게시물

파이썬[Python]: 내장함수 - from_bytes 메서드

파이썬[Python]: 내장함수 - __len__ 메서드

파이썬[Python]: kivy - 한글 사용

C 언어: sin 함수, cos 함수, tan 함수

파이썬[Python]: 내장함수 - bit_length 메서드