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恺撒密码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)