python密码学一次性密码的实现

 更新时间:2022年05月24日 11:46:22   作者:菜鸟教程  
这篇文章主要为大家介绍了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 编程语言详细介绍

    Python 编程语言详细介绍

    这篇文章主要分享的是 Python 编程语言的详细介绍,Python 由 Guido van Rossum 设计,作为“ABC”编程语言的继承者,于 1991 年首次发布。它是一种高级通用语言,其设计理念是通过使用缩进来强调代码的可读性。文章具有一定的参考价值,需要的朋友可以参考一下
    2021-11-11
  • Python网络爬虫之获取网络数据

    Python网络爬虫之获取网络数据

    本文介绍了Python中用于获取网络数据的重要工具之一——Requests库,详细讲解了Requests库的基本使用方法、请求方法、请求头、请求参数、Cookies、Session等内容,并结合实例代码展示了Requests库的应用场景
    2023-04-04
  • pymysql 插入数据 转义处理方式

    pymysql 插入数据 转义处理方式

    今天小编就为大家分享一篇pymysql 插入数据 转义处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 基于Python实现万年历制作

    基于Python实现万年历制作

    制作一个万年历是一个有趣的Python项目,它可以让您查看任何年份的日历并获得特定日期的信息,下面我们就来看看具体是如何使用Python实现的吧
    2023-12-12
  • Python 实现过滤掉列表中唯一值

    Python 实现过滤掉列表中唯一值

    这篇文章主要介绍了Python 实现过滤掉列表中唯一值,文章内容主要利用Python代码实现过滤掉列表中的唯一值的功能,需要的朋友可以参考一下
    2021-11-11
  • 浅谈python函数调用返回两个或多个变量的方法

    浅谈python函数调用返回两个或多个变量的方法

    今天小编就为大家分享一篇浅谈python函数调用返回两个或多个变量的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python基础之pandas数据合并

    Python基础之pandas数据合并

    这篇文章主要介绍了Python基础之pandas数据合并,文中有非常详细的代码示例,对正在学习python基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • python2.7读取文件夹下所有文件名称及内容的方法

    python2.7读取文件夹下所有文件名称及内容的方法

    python,本身来说是一门高级编程语言,python它入门简单,有基础的学起来很快就能有简单的应用,但是在非常高的抽象计算中,高级的python程序设计也是非常难学的。接下来给大家介绍python2.7读取文件夹下所有文件名称及内容的方法,一起看看吧
    2018-02-02
  • Python3使用Selenium获取session和token方法详解

    Python3使用Selenium获取session和token方法详解

    这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下
    2021-02-02
  • Python数据可视化之画图

    Python数据可视化之画图

    今天小编就为大家分享一篇关于Python数据可视化之画图,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01

最新评论