비대칭 암호화 해독
#
import rsa
import base64
# #
pub_key_obj, priv_key_obj = rsa.newkeys(1024)
pub_key_str = pub_key_obj.save_pkcs1()
pub_key_code = base64.standard_b64encode(pub_key_str)
priv_key_str = priv_key_obj.save_pkcs1()
priv_key_code = base64.standard_b64encode(priv_key_str)
print(pub_key_code)
print(priv_key_code)
#
def encrypt(values):
key_str = base64.standard_b64decode(pub_key_code)
pk = rsa.PublicKey.load_pkcs1(key_str)
val = rsa.encrypt(values.encode('utf-8'),pk)
return val
ret = encrypt('hhhhhh')
print(ret)
def decrypt(values):
key_str = base64.standard_b64decode(priv_key_code)
pk = rsa.PrivateKey.load_pkcs1(key_str)
val = rsa.decrypt(values,pk)
return val
ret1 = decrypt(ret)
print(ret1)
둘.실용 부호
import rsa
import base64
# #
pub_key_obj, priv_key_obj = rsa.newkeys(1024)
pub_key_str = pub_key_obj.save_pkcs1()
pub_key_code = base64.standard_b64encode(pub_key_str)
priv_key_str = priv_key_obj.save_pkcs1()
priv_key_code = base64.standard_b64encode(priv_key_str)
print(pub_key_code)
print(priv_key_code)
#
def encrypt(values):
length = len(values)
i,more = divmod(length,117)
if more:
i+= 1
data_list = []
for j in range(0,i):
data = values[117*j:(j+1)*117]
key_str = base64.standard_b64decode(pub_key_code)
pk = rsa.PublicKey.load_pkcs1(key_str)
val = rsa.encrypt(data.encode('utf-8'),pk)
data_list.append(val)
return b''.join(data_list)
ret = encrypt('hhhh' * 1000)
print(ret)
def decrypt(values):
length = len(values)
i, more = divmod(length, 128)
if more:
i += 1
data_list = []
for j in range(0, i):
data = values[128 * j:(j + 1) * 128]
key_str = base64.standard_b64decode(priv_key_code)
pk = rsa.PrivateKey.load_pkcs1(key_str)
val = rsa.decrypt(data,pk)
data_list.append(val.decode('utf-8'))
return ''.join(data_list)
ret1 = decrypt(ret)
print(ret1)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.