python rsa 암호 화 복호화

3256 단어 pythonrsa
최근 에 필요 한 것 이 있 으 니 RSA 암호 화 복호화 안전 을 연구 해 야 합 니 다.인터넷 바 이 두 에서 예 를 들 어 글 을 보 았 는데 암호 화 된 텍스트 정 보 를 어떻게 저장 하고 전송 하 며 인쇄 하 는 지 소개 하 는 글 이 별로 없 었 다.모두 천편일률 적 이 었 다.스 크 립 트 에 직접 암호 화 된 텍스트 정 보 를 변수 에 부여 한 다음 바로 복호화 합 니 다.RSA 암호 화 복호화 과정 을 곰 곰 이 생각해 보 니 두 끝 이 있 는 지 확인 했다.하 나 는 암호 화 단 이 고 하 나 는 복호화 단 이 며 보통 같은 기계 에 있 지 않다.여기 서 나 는 파일 에 저 장 된 것 만 모 의 한 다음 에 읽 었 다.인터넷 을 통 해 어떻게 전송 하 는 지 에 대해 서도 대동소이 하 다.
RSA 로 암호 화 된 밀 문 은 텍스트 정보 인 코딩 으로 표시 할 수 없 는 바 이 너 리 데이터 가 있 기 때문에 텍스트 로 직접 표시 할 수 없습니다.저장,네트워크 전송,인쇄 가 어 지 럽 지 않 으 므 로 base 64 인 코딩 으로 변환 해 야 합 니 다.base 64 디 코딩 은 파일 정보 로 직접 인 코딩 할 수 없 는 바 이 너 리 데 이 터 를 일반적인 바 이 너 리 데이터 로 변환 할 수 있 습 니 다.

 #/usr/bin/env python
# -*- coding: utf-8 -*-
import rsa
import sys
import base64
#    python      windows     
print("---- 1 ----")
print(sys.version)
print(sys.getdefaultencoding())
print(sys.getfilesystemencoding())
#        ,    .pem    ,         
print("---- 2 ----")
(pubkey, privkey) = rsa.newkeys(1024)
pub = pubkey.save_pkcs1()
print(type(pub))
pubfile = open('public.pem','w+')
pubfile.write(pub.decode('utf-8'))
pubfile.close()
print("---- 3 ----")
pri = privkey.save_pkcs1()
print(type(pri))
prifile = open('private.pem','w+')
prifile.write(pri.decode('utf-8'))
prifile.close()
# load     
print("---- 4 ----")
message = 'dPabdbGDpFTrwwgydVafdlsadlfsal%46645645s'
print('message:',type(message))
with open('public.pem') as publickfile:
 p = publickfile.read()
 print(type(p))
 pubkey = rsa.PublicKey.load_pkcs1(p.encode('utf-8'))
with open('private.pem') as privatefile:
 p = privatefile.read()
 print(type(p))
 privkey = rsa.PrivateKey.load_pkcs1(p.encode('utf-8'))
#      、      
crypto = rsa.encrypt(message.encode('utf-8'),pubkey)
print(crypto)
print("---- 5 ----")
print('crypto:',type(crypto))
print('cry_base64:',base64.encodestring(crypto))
print('cry_base64_utf8:',base64.encodestring(crypto).decode('utf-8'))
#        
cry_file = open('cry_file.txt','w+')
cry_file.write(base64.encodestring(crypto).decode('utf-8'))
cry_file.close()
print("---- 6 ----")
#        
cry_file = open('cry_file.txt','r')
cry_text = ''
for i in cry_file.readlines():
 cry_text += i
print('cry_text_type:',type(cry_text))
print('cry_text:',cry_text)
print('cry_base64:',cry_text.encode('utf-8'))
crypto_tra = base64.decodestring(cry_text.encode('utf-8'))
print("---- 7 ----")
assert crypto == crypto_tra
print(crypto)
print("---- 8 ----")
plaintext = rsa.decrypt(crypto,privkey)
assert message == plaintext.decode('utf-8')
print(plaintext.decode('utf-8'))
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기