最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python密碼學(xué)對(duì)稱和非對(duì)稱密碼教程

 更新時(shí)間:2022年05月24日 14:04:21   作者:菜鳥教程  
這篇文章主要為大家介紹了python密碼學(xué)對(duì)稱和非對(duì)稱密碼教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

在本章中,我們將詳細(xì)討論對(duì)稱和非對(duì)稱密碼術(shù).

對(duì)稱密碼術(shù)

在此類型中,加密和解密進(jìn)程使用相同的密鑰.它也被稱為秘密密鑰加密.對(duì)稱加密的主要特征如下:

  • 它更簡(jiǎn)單,更快.
  • 雙方以安全的方式交換密鑰.

缺點(diǎn)

對(duì)稱密碼術(shù)的主要缺點(diǎn)是如果密鑰泄漏給入侵者,則可以輕松更改消息,這被視為風(fēng)險(xiǎn)因素.

數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)

最流行的對(duì)稱密鑰算法是數(shù)據(jù)加密標(biāo)準(zhǔn)(DES),Python包含一個(gè)包含DES算法背后的邏輯的包.

安裝

在Python中安裝DES包 pyDES 的命令是 :

pip install pyDES

DES算法的簡(jiǎn)單程序?qū)崿F(xiàn)如下<

import?pyDes
data?=?"DES?Algorithm?Implementation"
k?=?pyDes.des("DESCRYPT",?pyDes.CBC,?"\0\0\0\0\0\0\0\0",?pad=None,?padmode=pyDes.PAD_PKCS5)
d?=?k.encrypt(data)
print?"Encrypted:?%r"?%?d
print?"Decrypted:?%r"?%?k.decrypt(d)
assert?k.decrypt(d)?==?data

它調(diào)用變量 padmode ,它根據(jù)DES算法實(shí)現(xiàn)提取所有包,并以指定的方式進(jìn)行加密和解密.

輸出

您可以看到以下輸出作為上面和下面給出的代碼的結(jié)果;

非對(duì)稱加密

它也被稱為公鑰加密.它以對(duì)稱加密的相反方式工作.這意味著它需要兩個(gè)密鑰:一個(gè)用于加密,另一個(gè)用于解密.公鑰用于加密,私鑰用于解密.

缺點(diǎn)

  • 由于其密鑰長(zhǎng)度,它的加密速度較低.
  • 密鑰管理至關(guān)重要.

以下Python中的程序代碼說(shuō)明了使用RSA算法進(jìn)行非對(duì)稱加密的工作及其實(shí)現(xiàn) :

from?Crypto?import?Random
from?Crypto.PublicKey?import?RSA
import?base64
def?generate_keys():
???#?key?length?must?be?a?multiple?of?256?and?>=?1024
???modulus_length?=?256*4
???privatekey?=?RSA.generate(modulus_length,?Random.new().read)
???publickey?=?privatekey.publickey()
???return?privatekey,?publickey
def?encrypt_message(a_message?,?publickey):
???encrypted_msg?=?publickey.encrypt(a_message,?32)[0]
???encoded_encrypted_msg?=?base64.b64encode(encrypted_msg)
???return?encoded_encrypted_msg
def?decrypt_message(encoded_encrypted_msg,?privatekey):
???decoded_encrypted_msg?=?base64.b64decode(encoded_encrypted_msg)
???decoded_decrypted_msg?=?privatekey.decrypt(decoded_encrypted_msg)
???return?decoded_decrypted_msg
a_message?=?"This?is?the?illustration?of?RSA?algorithm?of?asymmetric?cryptography"
privatekey?,?publickey?=?generate_keys()
encrypted_msg?=?encrypt_message(a_message?,?publickey)
decrypted_msg?=?decrypt_message(encrypted_msg,?privatekey)
print?"%s?-?(%d)"?%?(privatekey.exportKey()?,?len(privatekey.exportKey()))
print?"%s?-?(%d)"?%?(publickey.exportKey()?,?len(publickey.exportKey()))
print?"?Original?content:?%s?-?(%d)"?%?(a_message,?len(a_message))
print?"Encrypted?message:?%s?-?(%d)"?%?(encrypted_msg,?len(encrypted_msg))
print?"Decrypted?message:?%s?-?(%d)"?%?(decrypted_msg,?len(decrypted_msg))

輸出

你可以找到執(zhí)行上面給出的代碼時(shí)減去輸出;

以上就是python密碼學(xué)對(duì)稱和非對(duì)稱密碼教程的詳細(xì)內(nèi)容,更多關(guān)于python對(duì)稱非對(duì)稱密碼學(xué)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python ftplib上傳文件名亂碼的解決辦法

    python ftplib上傳文件名亂碼的解決辦法

    本文主要介紹了python ftplib上傳文件名亂碼的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • python實(shí)現(xiàn)rar解壓和壓縮的方法(附源碼)

    python實(shí)現(xiàn)rar解壓和壓縮的方法(附源碼)

    數(shù)據(jù)量現(xiàn)在越來(lái)越大,壓縮文件在日常生活中很常用,這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)rar解壓和壓縮的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • python通過(guò)yield實(shí)現(xiàn)數(shù)組全排列的方法

    python通過(guò)yield實(shí)現(xiàn)數(shù)組全排列的方法

    這篇文章主要介紹了python通過(guò)yield實(shí)現(xiàn)數(shù)組全排列的方法,實(shí)例分析了全排列的概念及yield實(shí)現(xiàn)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Pandas缺失值填充 df.fillna()的實(shí)現(xiàn)

    Pandas缺失值填充 df.fillna()的實(shí)現(xiàn)

    本文主要介紹了Pandas缺失值填充 df.fillna()的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Python+Pygame實(shí)戰(zhàn)之24點(diǎn)游戲的實(shí)現(xiàn)

    Python+Pygame實(shí)戰(zhàn)之24點(diǎn)游戲的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了如何利用Python和Pygame實(shí)現(xiàn)24點(diǎn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換小程序

    Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換小程序

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • DataFrame里的replace替換方式

    DataFrame里的replace替換方式

    這篇文章主要介紹了DataFrame里的replace替換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python?中?threading.Thread.join()?的使用方法示例詳解

    Python?中?threading.Thread.join()?的使用方法示例詳解

    threading.Thread.join()用于阻塞當(dāng)前線程,直到調(diào)用它的線程對(duì)象執(zhí)行完成或者超時(shí),在Python中,想要充分利用多線程的優(yōu)勢(shì),就需要對(duì)threading模塊中的 Thread 類了解,這里有一個(gè)非常簡(jiǎn)單的多線程程序,幫助理解 threading.Thread.join 方法,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • 在Python中執(zhí)行異常處理的基本步驟

    在Python中執(zhí)行異常處理的基本步驟

    異常處理是編寫健壯、可靠和易于調(diào)試的Python代碼中不可或缺的一部分,下面這篇文章主要給大家介紹了關(guān)于在Python中執(zhí)行異常處理的基本步驟,需要的朋友可以參考下
    2024-08-08
  • python使用for...else跳出雙層嵌套循環(huán)的方法實(shí)例

    python使用for...else跳出雙層嵌套循環(huán)的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于python使用for...else跳出雙層嵌套循環(huán)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論

镇平县| 虎林市| 吴江市| 巩留县| 亚东县| 和顺县| 清水河县| 星座| 黔西| 开平市| 连平县| 铜梁县| 漯河市| 枣阳市| 赤城县| 茂名市| 平山县| 武平县| 太保市| 晋州市| 南昌县| 万源市| 怀来县| 普兰店市| 封丘县| 延长县| 开鲁县| 柳河县| 庆安县| 太和县| 桦甸市| 台北市| 牟定县| 平罗县| 常宁市| 宁海县| 本溪| 东山县| 灌南县| 莫力| 保靖县|