求解凯撒密码算法的题目

求解凯撒密码算法的题目,第1张

C的编程思路,其它的语言不会

1,用for循环,实现一维数组a,从第一个输入到第六个字母,然后再用for循环把a从0到5都减29,赋值到b,把数组b以字符变量输出

2,同理,把密文加29,然后以字符变量输出

具体程序不难,我这里没有c编译软件。。。。。

恩~ 你都给了明文和密钥…不知道你还要什么方法啊?

如果你不知道凯撒,可以去百度一下,我给你简单说一下吧~

英文26个字母(不分大小写)可以由数字01~26来代替(有人也用00~25来代替,不过不常见~)

凯撒全称叫凯撒位移加密法,顾名思义啊~

比如A是01,你用n=4加密之后就是01+4=05,05在字母表里是E,所以A加密之后就是E~

CHINA用n=4加密之后就是GLMRI~ 明白没?

对了,需要说明一下,上面举的例子是字母表向右移动4位,n=4也可以理解为向左移动4位,那么CHINA加密之后就变成YDEJW~ 不过不用担心,一般情况下都是向右移的,当然也不排除某些变态向左移(强烈鄙视这种人!!!)…

恩~ 废话说了好多,给你密文吧~说明一下,我是用01~26和右移的方法加密的~

Glmri Girwvep Vehms erh XZ Yrmzivwmxc~ 完毕~(我加的有点快,不保证全对,你自己检查一下哈~)

再补一句,字母表可以循环用的,比如Z用完了就回到ABC…,这时候A就相当于27~ 明白否?

嘿嘿… 我腹黑一下下~ 如果你想用密码去虐一个人的脑细胞的话,推荐你用00~25和左移的方法,保证他能死至少一半的脑细胞~

嘿嘿嘿嘿……

解:

Private Sub cmdCode_Click()

Dim pt As String ' 明文

Dim ct As String ' 密文

Dim n As Integer ' 字母在字母表中的序号

Dim ch As String

Dim i As Integer

pt = txtPtText

ct = ""

For i = 1 To Len(pt)

ch = Mid(pt, i, 1)

Select Case ch

Case "A" To "Z"

n = Asc(ch) - Asc("A")

n = (n + 3) Mod 26

ch = Chr(n + 65)

Case "a" To "z"

n = asc(ch)-asc("A")

n = (n + 3) Mod 26

ch = Chr(n + 97)

End Select

ct = trim(ct & ch)

Next i

txtCtText = ct

End Sub

def encryption():

str_raw = input("请输入明文:")

k = int(input("请输入位移值:"))

str_change = str_rawlower()

str_list = list(str_change)

str_list_encry = str_list

i = 0

while i < len(str_list):

if ord(str_list[i]) < 123-k:

str_list_encry[i] = chr(ord(str_list[i]) + k)

else:

print ("解密结果为:"+""join(str_list_decry))

while True:

print (u"1 加密")

print(u"2 解密")

choice = input("请选择:")

if choice == "1": encryption()

elif choice == "2": decryption()

else: print (u"您的输入有误!")

以上就是关于求解凯撒密码算法的题目全部的内容,包括:求解凯撒密码算法的题目、凯撒密码、vb恺撒密码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9847420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存