ホームページ  >  記事  >  バックエンド開発  >  Python で RSA 暗号化、復号化、署名、検証関数を実装する方法の分析例

Python で RSA 暗号化、復号化、署名、検証関数を実装する方法の分析例

黄舟
黄舟オリジナル
2017-07-17 14:58:171738ブラウズ

この記事では、Pythonで実装されたRSA暗号化・復号化と署名・検証機能を中心に、PythonでのRSA暗号化・復号化の実装方法と、署名・検証関数の利用スキルを具体的な例と合わせて分析します。以下を参照してください

この記事の例では、Python で実装された RSA 暗号化/復号化および署名/検証関数について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

原文はpy2環境で、私の環境はpy3なので、元のコードはdecode()、encode()に変更されています

import rsa
# 生成密钥
(pubkey, privkey) = rsa.newkeys(1024)
# 保存密钥
with open('public.pem','w+') as f:
  f.write(pubkey.save_pkcs1().decode())
with open('private.pem','w+') as f:
  f.write(privkey.save_pkcs1().decode())
# 导入密钥
with open('public.pem','r') as f:
  pubkey = rsa.PublicKey.load_pkcs1(f.read().encode())
with open('private.pem','r') as f:
  privkey = rsa.PrivateKey.load_pkcs1(f.read().encode())
# 明文
message = 'hello'
# 公钥加密
crypto = rsa.encrypt(message.encode(), pubkey)
# 私钥解密
message = rsa.decrypt(crypto, privkey).decode()
print(message)
# 私钥签名
signature = rsa.sign(message.encode(), privkey, 'SHA-1')
# 公钥验证
rsa.verify(message.encode(), signature, pubkey)

改良版:

りー

以上がPython で RSA 暗号化、復号化、署名、検証関数を実装する方法の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。