python密码学一次性密码的实现
目录
- 一次性密码密码
- 为什么它是坚不可摧的?
- 加密
- 解密
- 一次性密码密码的实现
- 安装
- 代码
- 输出
一次性密码密码
一次性密码密码是一种Vignere密码,包括以下功能;
- 这是一个牢不可破的密码.
- 密钥与加密邮件的长度完全相同.
- 密钥由随机符号组成.
- 顾名思义,密钥仅使用一次,并且从不再用于任何其他消息加密.
由于这个原因,加密邮件很容易受到密码分析者的攻击.用于一次性密码密码的密钥称为 pad ,因为它打印在纸垫上.
为什么它是坚不可摧的?
由于以下功能,密钥是牢不可破的;
- 密钥只要是给定的消息.
- 密钥是真正随机的,特别是自动生成的.
- 按模10/26/2计算的密钥和纯文本.
- 每个密钥应使用一次,并由发送方和接收方销毁.
- 应该有两个密钥副本:一个带发件人,另一个带接收者.
加密
要加密字母,用户需要在明文下面写一个密钥.明文字母位于顶部,密钥字母位于左侧.两个字母之间的横截面是纯文本.它在下面的示例中描述 :
解密
要解密一封信,用户会取左边的关键字母,并在该行中找到密文字母.纯文本字母位于列的顶部,用户可以在其中找到密文字母.
一次性密码密码的实现
Python包含一个用于 one-time-pad 密码实现的hacky实现模块.包名称称为One-Time-Pad,其中包括一个命令行加密工具,该工具使用类似于一次性密码密码算法的加密机制.
安装
您可以使用以下命令安装此模块 :
pip install onetimepad
如果您希望从命令行使用它,请运行以下命令 :
onetimepad
代码
以下代码有助于生成一次性密码密码;
import onetimepad cipher = onetimepad.encrypt('One Time Cipher', 'random') print("Cipher text is ") print(cipher) print("Plain text is ") msg = onetimepad.decrypt(cipher, 'random') print(msg)
输出
运行上面和下面给出的代码时,您可以观察到以下输出;
注意 : 如果密钥的长度小于消息的长度(纯文本),则加密的消息很容易破解.
在任何情况下,密钥不一定是随机的,这使得一次性密码密码作为一种有价值的工具.
以上就是python密码学一次性密码的实现的详细内容,更多关于python一次性密码的资料请关注我们其它相关文章!
相关推荐
-
Python密码学仿射密码及攻击单字母密码教程
目录 仿射密码 代码 输出 单字母密码 输出 仿射密码 Affine Cipher是Multiplicative Cipher和Caesar Cipher算法的组合. 仿射密码的基本实现如下图所示 : 我们将通过创建包含两个加密和解密基本函数的相应类来实现仿射密码. 代码 您可以使用以下代码实现仿射密码 : class仿射(对象): DIE = 128 KEY =(7,3,55) def __init __(self): #传递 def encryptChar(self,char):
-
python密码学Base64编码和解码教程
目录 Base64编码 编码程序 输出 解码程序 输出 差异在ASCII和base64之间 缺点 Base64编码 Base64编码将二进制数据转换为文本格式,通过通信通道传递,用户可以安全地处理文本. Base64也称为隐私增强电子邮件(PEM),主要用于电子邮件加密过程. Python包含一个名为 BASE64的模块其中包括下面给出的两个主要功能 : base64.decode(输入,输出) : 它解码指定的输入值参数并将解码的输出存储为对象. Base64.encode(输入,输出) ;它
-
python密码学简单替代密码解密及测试教程
目录 简单替代密码 示例 输出 简单替换密码测试 输出 简单替换密码解密 代码 简单替代密码 简单替换密码是最常用的密码,包括为每个密文文本字符替换每个纯文本字符的算法.在这个过程中,与凯撒密码算法相比,字母表是混乱的. 示例 简单替换密码的密钥通常由26个字母组成.一个示例键是 : plain alphabet : abcdefghijklmnopqrstuvwxyz cipher alphabet: phqgiumeaylnofdxjkrcvstzwb 使用上述密钥的示例加密是 : plai
-
python密码学各种加密模块教程
目录 加密模块 代码 输出 说明 在本章中,您将详细了解Python中各种加密模块. 加密模块 它包含所有配方和基元,并在Python中提供高级编码接口.您可以使用以下命令安装加密模块 : pip install cryptography 代码 您可以使用以下代码实现加密模块 : from cryptography.fernet import Fernet key = Fernet.generate_key() cipher_suite = Fernet(key) cipher_text = c
-
python密码学Vignere密码教程
目录 Vignere密码 数学方程 Vignere Tableau 实现 代码 输出 Vignere密码 Vignere Cipher包含用于加密和解密的Caesar Cipher算法. Vignere Cipher与Caesar Cipher算法类似,只有一个主要区别:Caesar Cipher包含一个字符移位的算法,而Vignere Cipher包含多个字母移位的键. 数学方程 Vignere密码使用多组替换,因此它也被称为 polyalphabetic cipher . Vignere C
-
Python密码学XOR算法编码流程及乘法密码教程
目录 XOR算法 代码 输出 说明 乘法密码 Python中乘法密码的基本调制函数如下: 在本章中,让我们了解XOR过程及其在Python中的编码以及乘法密码的教程 XOR算法 XOR算法的加密和解密转换ASCII字节格式的纯文本,并使用XOR过程将其转换为指定的字节.它为用户提供以下优势 : 快速计算 没有区别标记左侧和右侧 易于理解和分析 代码 您可以使用以下代码执行XOR过程 : def xor_crypt_string(data, key = 'awesomepassword', enc
-
python密码学一次性密码的实现
目录 一次性密码密码 为什么它是坚不可摧的? 加密 解密 一次性密码密码的实现 安装 代码 输出 一次性密码密码 一次性密码密码是一种Vignere密码,包括以下功能; 这是一个牢不可破的密码. 密钥与加密邮件的长度完全相同. 密钥由随机符号组成. 顾名思义,密钥仅使用一次,并且从不再用于任何其他消息加密. 由于这个原因,加密邮件很容易受到密码分析者的攻击.用于一次性密码密码的密钥称为 pad ,因为它打印在纸垫上. 为什么它是坚不可摧的? 由于以下功能,密钥是牢不可破的; 密钥只要是给定的消息
-
python密码学换位密码及换位解密转置加密教程
目录 换位密码 示例 代码 解释 输出 Pyperclip 代码 输出 解释 解密转置密码的步骤. 代码 说明 输出 换位密码 Transposition Cipher是一种加密算法,其中明文中的字母顺序被重新排列以形成密文.在此过程中,不包括实际的纯文本字母. 示例 转置密码的一个简单示例是柱状转置密码其中纯文本中的每个字符都是水平写入的,具有指定的字母宽度.密码是垂直写入的,它创建了一个完全不同的密文. 考虑纯文本 hello world ,让我们应用简单的柱状转置技术,如图所示在 纯文本字
-
python密码学RSA密码解密教程
目录 授权 身份验证 RSA密码解密 本章是前一章的延续,我们使用RSA算法逐步实现加密,并详细讨论它. 用于解密密文的函数是as跟随 : def decrypt(ciphertext, priv_key): cipher = PKCS1_OAEP.new(priv_key) return cipher.decrypt(ciphertext) 对于公钥加密或非对称密钥加密,重要的是要保持两个重要的功能,即身份验证和授权. 授权 授权是确认发件人是唯一发送邮件的人的过程.以下代码解释了
-
python密码学RSA密码加密教程
目录 加密算法模块 哈希值初始化 函数algorithm 加密程序的完整代码 在本章中,我们将重点介绍RSA密码加密的不同实现及其所涉及的功能.您可以引用或包含此python文件以实现RSA密码算法实现. 加密算法模块 加密算法包含的模块如下 from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP from Crypto.Signature import PKCS1_v1_5 from Crypto.Hash i
-
Python进行密码学反向密码教程
目录 反向密码算法 缺点 示例 输出 解释 上一章概述了在本地计算机上安装Python的过程.在本章中,您将详细了解反向密码及其编码. 反向密码算法 反向密码算法具有以下特性 : 反向密码使用反转纯文本字符串的模式转换为密文. 加密和解密过程相同. 要解密密文,用户只需要反转密文以获得纯文本. 缺点 主要缺点是反向密码是非常弱的.黑客可以轻松破解密文以获取原始消息.因此,反向密码不被认为是维护安全通信信道的良好选择. 示例 考虑一个示例,其中语句这是解释反向密码的程序将使用反向密码算法实现.下面
-
python 密码学示例——凯撒密码的实现
凯撒密码 是密码学中的一种简单的 替换加密 技术.明文中的所有字符都会替换为其按照字母表顺序向左(或向右)偏移一定量后得到的新字母,作为加密后密文. 如当偏移量为 3 时,明文中所有的字母 A 将被替换成字母 D,B 替换成 E,以此类推. 若收到密文的同时已知加密时使用的偏移量,就可以快速地通过逆运算获取到最初的明文. 下面两张图展示了当偏移量为 8 时明文字母与密文字母的对应关系(图一即凯撒密码轮盘,外层为明文,内层为密文,可旋转以改变偏移量)以及实际的加密过程(图二): PS:对一段明文消
-
Python密码学Caesar Cipher凯撒密码算法教程
目录 凯撒密码算法 输出 说明 凯撒密码算法的黑客攻击 在最后一章中,我们处理了反向密码.本章详细讨论了凯撒密码. 凯撒密码算法 凯撒密码的算法具有以下特征; Caesar Cipher Technique是一种简单易用的加密技术方法. 这是一种简单的替换密码类型. 每个纯文本字母都被一个字母替换,字母的位数固定不变./p> 下图描绘了Caesar密码算法实现的工作原理 : Caesar密码算法的程序实现如下 : def encrypt(text,s): result = ""
随机推荐
- jQuery+html5实现div弹出层并遮罩背景
- python 循环遍历字典元素的简单方法
- Oracle中instr函数使用方法
- JScript中的条件注释详解
- 编写PHP程序检查字符串中的中文字符个数的实例分享
- php 字符过滤类,用于过滤各类用户输入的数据
- Python实现对象转换为xml的方法示例
- Android中menu使用详解
- 阿里大于短信验证码node koa2的实现代码(最新)
- 采用call方式实现js继承
- 男人穿什么样内裤更合适
- php中时间轴开发(刚刚、5分钟前、昨天10:23等)
- SUSE Linux登录出现黑屏解决方法
- SQL2000个人版 应用程序正常初始化失败0乘以C0000135失败
- Oracle Number型数值存储与转换的实现详解
- ES6通过babel转码使用webpack使用import关键字
- IIS6 MVC4 路由失效 无法访问的解决方法
- 5款最佳的免费Linux杀毒软件
- Javascript之String对象详解
- Eclipse下配置Ant脚本并自动打包带签名的Android apk