日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python RSA加密的示例

瀏覽:24日期:2022-07-02 16:18:26

RSA加密是一種非對(duì)稱加密,通常使用公鑰加密,私鑰解密,私鑰簽名,公鑰驗(yàn)簽。

在公開(kāi)密鑰密碼體制中,加密密鑰(即公開(kāi)密鑰)PK是公開(kāi)信息,而解密密鑰(即秘密密鑰)SK是需要保密的.RSA算法通常是先生成一對(duì)RSA密鑰,其中之一是保密密鑰,由用戶保存;另一個(gè)為公開(kāi)密鑰,可對(duì)外公開(kāi),甚至可在網(wǎng)絡(luò)服務(wù)器中注冊(cè)。

RSA是一種公鑰密碼算法,加密算法是將明文m(m<n是一個(gè)整數(shù))加密成密文c,即明文數(shù)字m的 E 次方求mod N,也就是將明文與自己相乘E次,然后結(jié)果除以N求余數(shù),余數(shù)就是密文c,E和N組合就是公鑰;解密算法為將密文c解密為明文m,即密文數(shù)字c的D次方求mod N,也就是將密文與自己相乘D次,然后結(jié)果除以N求余數(shù),余數(shù)就是明文m,D和N組合就是私鑰。

以下是關(guān)于RSA生成公鑰私鑰、加密、解密、加簽、驗(yàn)簽的示例。

1、生成公鑰私鑰:

from Crypto import Randomfrom Crypto.PublicKey import RSA # 偽隨機(jī)數(shù)生成器random_generator = Random.new().read# rsa算法生成實(shí)例rsa = RSA.generate(1024, random_generator)# 私鑰的生成private_pem = rsa.exportKey()with open('private.pem', 'wb') as f: f.write(private_pem)# 公鑰的生成public_pem = rsa.publickey().exportKey()with open('public.pem', 'wb') as f: f.write(public_pem)

生成的公鑰私鑰文件在項(xiàng)目路徑下,也可以直接指定生成文件路徑。

文件樣例

python RSA加密的示例

生成的公鑰私鑰格式是固定的,秘鑰中間無(wú)空格無(wú)換行,秘鑰末尾也空格無(wú)換行,如下:

-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEedv+5NsbqAh6pjOMKF8I7FGaet3QMUi0g5xDfQAM219qqXnoPi2hmCMjR8MWJV/zyMZ6IiRG/pvrZ2ZhfDNFdW3ZSfHczRUvabABzWAr/57/eDBjswv4RQA+gUS6t8wFY/iV+O3i9+d79iN3VhUogfI33Ru3+RPFeFW88tYUhwIDAQAB-----END PUBLIC KEY----- -----BEGIN RSA PRIVATE KEY-----MIICXAIBAAKBgQDEedv+5NsbqAh6pjOMKF8I7FGaet3QMUi0g5xDfQAM219qqXnoPi2hmCMjR8MWJV/zyMZ6IiRG/pvrZ2ZhfDNFdW3ZSfHczRUvabABzWAr/57/eDBjswv4RQA+gUS6t8wFY/iV+O3i9+d79iN3VhUogfI33Ru3+RPFeFW88tYUhwIDAQABAoGAApzaO5QAg+gioLroEZOR2/UEisjafUPCg0ACynT1lLYwGSOCzv9QrQbwZK42HmvF0GCZnxMoJ1eIbEN2PZKgveQ/o4o8OdhuSk8pcDY72QwQHgSh1yfdvqkulo7Dvdmjz63DVSrknYRQFYSHIwUPVVTWyT80OTCYSn3JGqNKa9kCQQDZUbtlBvcPzP4T5hRaH9XvCh3PPusQKGPzVRVLn+qZ30N2PNgttYKRMshlz1WMts2ZAKr3b3BLT6GTshE5KatfAkEA53JkuV1vUEMg5j1ClgrwTs65yLWb+NbLH84xekrkkSxCkVjE7J/NQV7Uk87na49LuztBaECBmaZyTQnFKk7P2QJAMzcc18lVbmbcNipR/49jJquWrOHiGfO64nzZwPHWIx9H0dSzCcquE7QJIF1Fhx0JxRYwNJIRv93rcVhU0MjuNwJAIgI/JrXCC4sxpGNQC3gkA5CA4Cs/dfsp8cx8nLmwiFx2k6D1nseEg5yJpAZ9HuL5f9OfMtB3uroohYVwAV1/UQJBAIZQkryoOJxPbfWvIIGBOAlS/QqfE5kLV+3L2RUtBlacnJykMucrdDx1gVKgoREUElxpYtlWI17h9MeNXRICgIM=-----END RSA PRIVATE KEY-----2、加密(使用公鑰加密)

from Crypto.PublicKey import RSAfrom Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5import base64 # 加密message = 'Hello,This is RSA加密'rsakey = RSA.importKey(open('public.pem').read())cipher = Cipher_pkcs1_v1_5.new(rsakey) #創(chuàng)建用于執(zhí)行pkcs1_v1_5加密或解密的密碼cipher_text = base64.b64encode(cipher.encrypt(message.encode(’utf-8’)))print(cipher_text.decode(’utf-8’))

加密結(jié)果:

Y1oivzbBDIEWX+NaXYLCJo5A226TmuemketZMUM3U80Rw3gSETjG5rHQ+S++Yao+iGQ5jSJA2yjkDtDAjdvi2VUz15LRSkdeKoliWnWy93KKl+aNEsBl3SUicATUgfNWU5ILo+DiltpF79AfIEhPptAz7+gN11KAf5LjfcQZ2+0=

這里每次使用公鑰加密后的結(jié)果都不一致,跟對(duì)數(shù)據(jù)的padding即填充有關(guān)。

加密時(shí)支持的最大字節(jié)數(shù)與證書(shū)有一定關(guān)系。加密時(shí)支持的最大字節(jié)數(shù):證書(shū)位數(shù)/8 -11(比如:2048位的證書(shū),支持的最大加密字節(jié)數(shù):2048/8 - 11 = 245)

1024位的證書(shū),加密時(shí)最大支持117個(gè)字節(jié),解密時(shí)為128;2048位的證書(shū),加密時(shí)最大支持245個(gè)字節(jié),解密時(shí)為256。

如果需要加密的字節(jié)數(shù)超出證書(shū)能加密的最大字節(jié)數(shù),此時(shí)就需要進(jìn)行分段加密。

3、解密(使用私鑰解密)

from Crypto.PublicKey import RSAfrom Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5import base64 # 解密cipher_text = 'Y1oivzbBDIEWX+NaXYLCJo5A226TmuemketZMUM3U80Rw3gSETjG5rHQ+S++Yao+iGQ5jSJA2yjkDtDAjdvi2VUz15LRSkdeKoliWnWy93KKl+aNEsBl3SUicATUgfNWU5ILo+DiltpF79AfIEhPptAz7+gN11KAf5LjfcQZ2+0='encrypt_text = cipher_text.encode(’utf-8’)rsakey = RSA.importKey(open('private.pem').read())cipher = Cipher_pkcs1_v1_5.new(rsakey) #創(chuàng)建用于執(zhí)行pkcs1_v1_5加密或解密的密碼text = cipher.decrypt(base64.b64decode(encrypt_text), '解密失敗')print(text.decode(’utf-8’))

解密結(jié)果,與加密前信息一致:

Hello,This is RSA加密4、加簽(使用私鑰加簽)

使用私鑰加簽,每次簽名是一致的。

from Crypto.PublicKey import RSAfrom Crypto.Signature import PKCS1_v1_5 as Signature_pkcs1_v1_5from Crypto.Hash import SHAimport base64 #加簽message = 'This is a request message...'rsakey = RSA.importKey(open('private.pem').read())signer = Signature_pkcs1_v1_5.new(rsakey)digest = SHA.new()digest.update(message.encode('utf-8'))sign = signer.sign(digest)signature = base64.b64encode(sign)print(signature.decode(’utf-8’))

簽名結(jié)果:

fd99fQpbH48VT9YQKepyHSip9pwrJkm1PN3ZykHNrfTVk555fv392E7MtbIfcligOCWUx8nd3g+7J0Fo3x+9G1Y6MJs0CuMCbA4qulUMNGjzUpsN1URorMZfPKjPvhf22ARH9qZEnebQ7UUGO3ioy4nylZONb3Ldhga+PKyxYTM=5、驗(yàn)簽(使用公鑰驗(yàn)簽)

from Crypto.PublicKey import RSAfrom Crypto.Signature import PKCS1_v1_5 as Signature_pkcs1_v1_5from Crypto.Hash import SHAimport base64 #驗(yàn)簽message_verify = 'This is a request message...'signature = 'fd99fQpbH48VT9YQKepyHSip9pwrJkm1PN3ZykHNrfTVk555fv392E7MtbIfcligOCWUx8nd3g+7J0Fo3x+9G1Y6MJs0CuMCbA4qulUMNGjzUpsN1URorMZfPKjPvhf22ARH9qZEnebQ7UUGO3ioy4nylZONb3Ldhga+PKyxYTM='rsakey = RSA.importKey(open('public.pem').read())verifier = Signature_pkcs1_v1_5.new(rsakey)hsmsg = SHA.new()hsmsg.update(message_verify.encode('utf-8'))is_verify = verifier.verify(hsmsg, base64.b64decode(signature))print(is_verify)

驗(yàn)簽結(jié)果:

True

以上就是python RSA加密的示例的詳細(xì)內(nèi)容,更多關(guān)于python rsa加密的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
综合视频一区| 亚洲欧美在线专区| 日本欧美一区二区在线观看| 丝袜美腿一区二区三区| 色婷婷久久久| 岛国av在线播放| 国产精品久久| 日韩激情视频网站| 亚洲精品中文字幕99999| 久久亚洲电影| 亚洲一区二区三区高清不卡| 九九综合九九| 夜夜嗨网站十八久久| 一本一道久久a久久精品蜜桃| 婷婷中文字幕一区| av资源中文在线天堂| 电影亚洲精品噜噜在线观看| 日本高清不卡一区二区三区视频| 91av亚洲| 亚洲精品电影| 亚洲一区免费| 男人的天堂亚洲一区| 视频一区在线视频| 日本不卡在线视频| 国产欧美丝祙| 国产拍在线视频| 日韩一区二区在线免费| 久久精品亚洲人成影院| 欧美午夜不卡| 日韩一区二区三区在线看| 亚洲综合福利| 国产欧美69| 久久久久久色 | 中文欧美日韩| 亚洲一二三区视频| 牛牛精品成人免费视频| 美女视频黄久久| 香蕉成人av| 亚洲一区二区三区免费在线观看| 中文字幕亚洲在线观看| 国产精品hd| 亚洲一级少妇| 婷婷亚洲五月| 日本va欧美va瓶| 韩日一区二区| 亚洲午夜精品久久久久久app| 日韩精品一区第一页| 国产欧美啪啪| 久久视频国产| 日韩精品一区二区三区中文 | 最新亚洲激情| 奇米色欧美一区二区三区| 欧美a级一区二区| 欧美成人久久| 日韩av中文字幕一区二区三区| 九九九精品视频| 久久精品官网| 青青草精品视频| 欧美二三四区| 日韩国产欧美三级| 色黄视频在线观看| 亚洲日本欧美| 国产理论在线| 99精品视频在线| 久久国产乱子精品免费女| 欧美成人a交片免费看| 日本欧美在线看| 欧产日产国产精品视频| 日韩三级精品| 婷婷综合五月| 精品一级视频| 亚洲色图国产| 久久理论电影| 精品一区二区三区中文字幕在线| 夜夜嗨网站十八久久 | 中文字幕在线视频网站| 视频一区中文字幕精品| 国产成人77亚洲精品www| 日韩中文字幕不卡| 中文字幕在线官网| 91成人在线精品视频| 国产字幕视频一区二区| 国产免费成人| 97欧美在线视频| 一级欧美视频| 日韩精品一区二区三区免费观影| 亚洲麻豆一区| 99精品视频在线| 精品伊人久久久| 亚洲aa在线| 给我免费播放日韩视频| 人人爽香蕉精品| 欧美日韩精品一区二区视频| 国产精品一卡| 亚洲精品少妇| 国产婷婷精品| 久久久久国产一区二区| 国产一区二区三区四区| 91成人福利| 最新亚洲国产| 欧美日韩免费观看一区=区三区| 精品欠久久久中文字幕加勒比| 日本中文字幕不卡| 亚洲激情偷拍| 久久精品青草| 国语精品一区| 国产视频一区二区在线播放| 视频精品一区二区| 欧美福利在线| 亚洲a在线视频| 国产精品久久久久久久免费观看| 日韩在线网址| 日韩一区欧美二区| av不卡在线看| 性一交一乱一区二区洋洋av| 黑丝美女一区二区| 欧美综合另类| 亚洲精品888| 亚洲精品888| 伊人久久亚洲热| 久久在线免费| 日韩在线短视频| 少妇久久久久| 蜜臀久久99精品久久一区二区| 欧美性感美女一区二区| 久久亚洲在线| 99国产精品久久久久久久| 91九色精品| 午夜在线视频观看日韩17c| 在线日韩成人| 日韩高清不卡一区二区| 欧美精品中文| 精品视频久久| 日韩在线第七页| 不卡视频在线| 亚洲免费网址| 亚洲精品亚洲人成在线观看| 亚洲不卡视频| 国产欧美日韩精品高清二区综合区 | 午夜精品影视国产一区在线麻豆| 美日韩精品视频| 蜜臀久久久99精品久久久久久| 狠狠干综合网| 亚洲精选久久| 国产精品黄色| 国产成人久久精品一区二区三区| 秋霞影视一区二区三区| 国产高清一区二区| 蜜桃久久久久久久| 欧美片第1页综合| 精品久久久网| 不卡中文一二三区| 日韩精品视频网站| 麻豆国产欧美一区二区三区 | 日韩在线卡一卡二| 日韩高清在线不卡| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 日韩在线播放一区二区| 日本亚洲不卡| 精品一区电影| 免费黄色成人| 97精品资源在线观看| 欧美精品成人| 99精品在线观看| 色狠狠一区二区三区| 精品日韩一区| 影音先锋国产精品| 国产亚洲精品美女久久| 麻豆视频在线观看免费网站黄| 欧美成人高清| 国产精品亚洲欧美一级在线| av高清一区| 日本少妇精品亚洲第一区| 波多视频一区| 亚洲日本三级| 桃色av一区二区| 亚洲日本三级| 精品视频97| 亚洲一区二区三区四区电影| 麻豆精品视频在线观看免费| 亚洲电影在线一区二区三区| 国产欧美一区二区三区国产幕精品| 成人精品亚洲| 日韩激情中文字幕| 久久精品动漫| 国产欧美激情| 亚洲经典在线| 免费日韩一区二区三区| 中文一区二区| 精品国产a一区二区三区v免费| 亚洲欧美日韩在线观看a三区| 久久精品免视看国产成人| 欧美成人综合| 老牛国内精品亚洲成av人片| 一区在线视频观看| 精品午夜久久| 日本一不卡视频| 91精品精品| 久久这里只有精品一区二区| 老色鬼久久亚洲一区二区|