I.暗号化されたコード
公開鍵復号化するための秘密の暗号化#
インポートRSA インポート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) 印刷(pub_key_code) 印刷(priv_key_code) #の暗号化 DEF 暗号化(値): key_str = base64.standard_b64decode(pub_key_code) PK =rsa.PublicKey.load_pkcs1(key_str) ヴァル = rsa.encrypt(values.encode(' UTF-8 ' )、PK) リターンヴァルの RET =暗号化(' HHHHHH ' ) プリント(RET)が DEF (値)復号: key_str = BASE64 .standard_b64decode(priv_key_code) PK = rsa.PrivateKey.load_pkcs1(key_str) ヴァル = rsa.decrypt(値は、PK) リターンヴァル RET1 = 解読(RET) プリント(RET1)
II。実用的なコード
インポートRSA インポート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 ) プリント(pub_key_code) プリント(priv_key_code) #加密 DEF 暗号化(値): 長さ = LEN(値) I、より = divmod(長さ、117 ) 場合もっと: I + = 1 DATA_LIST = [] のための J での範囲(0、I): データ =値[117 * jの(J + 1)* 117 ] key_str = base64.standard_b64decode(pub_key_code) PK = rsa.PublicKey。 load_pkcs1(key_str) ヴァル = rsa.encrypt(data.encode(' UTF-8 ' )、PK) data_list.append(ヴァル) リターン B '' .join(DATA_LIST) RET =暗号化(' HHHH ' ×1000 ) 印刷(RET) DEF :(値)復号 長 = LEN(値) I、より = divmod(長さ、128 ) 場合より: 私は + = 1 DATA_LIST = [] のための J での範囲(0、I): データ =値[ 128 * jの(J + 1)* 128 ] key_str = base64.standard_b64decode(priv_key_code) PK = rsa.PrivateKey.load_pkcs1(key_str) ヴァル = rsa.decrypt(データ、PK) data_list.append(val.decode(' UTF -8 ")) 戻り '' .join(DATA_LIST) RET1 = 解読(RET) プリント(RET1)