`

使用凯撒加密法加密

 
阅读更多

凯撒密码

 

凯撒:

除了是一个男人之外,他还是古罗马时期伟大的军事家和政治家。高卢战争的时候,他发明了这个密码,使得可以在敌人无法理解的情况下与联军进行联络。

 

凯撒密码:

正如刚才我们例子中的,将明文中的各个字符按顺序进行 n 个字符错位转换的加密方法我们称为凯撒密码。

优点:实现了最简单的加密方案,容易理解

缺点:对于有一点点密码学功底的朋友来说,安全强度几乎为零,有点弱不禁风。

 

密码的安全强度:

刚才我们提到了安全强度这个概念,顺道给大家介绍下。

例如凯撒密码,加密钥匙充其量也只有24个,也就是说,不管移动多少字符,最多只需要进行24次猜解即可破译出来!

知识普及:古代罗马字母只有25个哦 ^_^

 

栅栏密码

 

尽管名字看上去挺酷,不过很遗憾让大家失望了,栅栏密码也是很脆弱的。

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第一个字母连起来,形成一段无规律的密文。

注意,栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)

 

在线虚拟加密:https://inventwithpython.com/cipherwheel/

# -*- coding: utf-8 -*-
# @Time    : 2017/4/27 22:13
# @Author  : xiaojingjing
# @Site    : 
# @File    : pyperclip_test.py
# @Software: PyCharm
import  pyperclip


# message='This is my secret message.'
message=input("请输入需要加密的信息(必须为英文):")

key=int(input("请输入加密key的值(0~25整数):"))
#tells the program to encrypt or decrypt
# set to 'encrypt' or  'decrypt'
mode='encrypt'

#every possible symbol that can be encrypted
LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'

#stores the encrypted/decrypted form of the message
translated=''

#capitalize the string in message
#upper转换成大写,lower转换成小写
message=message.upper()

#run the encryption/decrypted code on each symbol in the message string
for symbol in message:
    if symbol in LETTERS:
        #get the encrypted(or decrypted) number for this symbol
        num=LETTERS.find(symbol)
        if mode=='encrypt':
            num=num+key
        elif mode=='decrypt':
            num=num-key

        #handle the wrap-around if num is larger than the length of
        #LETTERS or less than 0
        if num>=len(LETTERS):
            num=num-len(LETTERS)
        elif num<0:
            num=num+len(LETTERS)
        #add encrypted/decrypted number's symbol at the end of translated
        translated=translated+LETTERS[num]
    else:
        #just add the symbol without encrypting/decrypting
        translated=translated+symbol
print("使用凯撒加密,其中K='",key,"'时,对'",message,"'加密结果为:",translated)

#加密后的字符串结果复制到剪切板,通过Ctrl+V即可粘贴
pyperclip.copy(translated)

 

分享到:
评论

相关推荐

    C++实现简单凯撒加密解密算法

    该资源C++实现简单凯撒加密解密算法,内容简单实用,希望能帮助大家

    凯撒加密程序 C++编写

    使用C++面向对象的方法编写的改进版的凯撒加密算法,内附编译好的可执行文件和源代码,以及使用说明书

    凯撒加密法的编程题

    用C语言编的凯撒加密法的代码,凯撒加密是一种移位替代加密算法.

    凯撒密码转换器

    支持对字母的转换加密 解密

    凯撒加密与频率分析解密

    资源包含凯撒加密与频率分析解密的源代码+操作说明文档。用C#语言编写,仅供学习参考。

    JAVA试题,所得税计算,凯撒加密器

    2、开发加密类Encryption,使用凯撒加密法对字符串加密,并把加密后的结果返回给Switcher。 3、开发解密类Dncryption,使用凯撒加密法对字符串解密,并把解密后的结果返回给Switcher。 凯撒加密法,就是将字母表中...

    凯撒密码(对文本进行加密)

    一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。

    凯撒密码解码器

    对一段密码进行凯撒解码,显示所有可能明码

    凯撒密码加密解密算法 C++

    凯撒密码加密解密算法 C++的语言~欢迎大家下载哈~共享~

    MATLAB 实现Caesar密码加密与解密

    用MATLAB实现了Caesar密码的加密与解密,分别写成函数文件,并附带测试文件,可以正常运行。

    恺撒密码转换器exe

    恺撒密码转换器,可以加密解密,恺撒密码转换器,可以加密解密

    java阶段机试试题

    java阶段机试试题 部分内容如下,下载可看全部哦!! 二、凯撒加密器 1、功能要求 ...(2)根据凯撒加密法,对字符串进行加密或解密。 (3)加密或解密完成后,把结果输出到控制台。如图-4和图-5所示

    kaisa.rar_凯撒加

    凯撒加密法的实现,用于对长文章的内容加密,为vc++6.0工程

    java加密解密程序

    采用MyEclipse编写的一个java加密解密程序,算法是凯撒加密法,欢迎有兴趣的朋友下载

    凯撒密码算法演示程序

    凯撒密码算法演示程序,很好的东东哦! 详细演示凯撒密码算法

    凯撒密码算法

    凯撒密码,又叫替代密码,算法的原理是使用替代法进行加密,就是将明文中的字符用其他字符替代后形成密文

    c# 加密和解密相关代码

    public string Caesar(string str) //凯撒加密算法的实现 { char[] c = str.ToCharArray(); //创建字符数组 string strCaesar = ""; //定义一个变量,用来存储加密后的字符串 for (int i = 0; i ; i++) //遍历字符串...

    摩尔斯电码翻译加密解密器v2.0中文绿色免费版

    摩斯密码翻译器是一款非常简单易用的摩斯密码的翻译工具,我们看到的一些谍战片都会提到摩斯密码,这是早前的一款加密方式,它通过符号来代表文字,不过目前这种...另外还可以通过凯撒移位法进行暗文解密一键明文加密。

    Python实现的凯撒密码算法示例

    下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。 二 代码 # -*- coding...

    恺撒(caesar)密码

    替代密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做对应替换后形成密文。 替代密码包括多种类型,如单表替代密码、多明码替代密码...

Global site tag (gtag.js) - Google Analytics