用VBS实现凯撒密码算法

标签: , , , , ,

在密码学中,恺撒密码(或称恺撒加密、恺撒变换)是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向後(或向前)按照一个固定数目进行偏移後被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。

例如,当偏移量是左移3的时候(解密时的密钥就是3):

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

以上都是废话啦,最近在教一个小朋友VBS,给她出了一道题,让她实现凯撒密码算法,不过貌似有点难了。Google了一下凯撒密码,出来的基本都是C和Java的实现,还是我自己写吧。

Function Caesar(str,offset)
	Dim length,char,i
	Caesar = ""
	length = Len(str)
	For i = 1 To length
		char = Mid(str,i,1)
		If char >= "A" And char <= "Z" Then
			char = Asc("A") + (Asc(char) - Asc("A") + offset) Mod 26
			Caesar = Caesar & Chr(char)
		ElseIf char >= "a" And char <= "z" Then
			char = Asc("a") + (Asc(char) - Asc("a") + offset) Mod 26
			Caesar = Caesar & Chr(char)
		Else
			Caesar = Caesar & char
		End If
	Next
End Function

WScript.Echo Caesar("ABCDEFGHIJKLMNOPQRSTUVWXYZ",3)

WordPress的默认主题真不好使,代码竟然溢出了,将就着看吧,或者给我推荐一个好看点的主题也行。

赞赏

微信赞赏支付宝赞赏

随机文章:

  1. 强烈推荐EditPlus 3.21
  2. 中兴F460 V5.0光猫恢复出厂配置
  3. ass2srt.vbs(ass/ssa批量转换srt)
  4. 效率低下的Split函数,用VBS的人你伤不起
  5. VBS里的变量名和标识符(Identifiers)

3 条评论 发表在“用VBS实现凯撒密码算法”上

  1. sophy说道:

    你果然很强大啊 很佩服你 是个有思想的家伙

  2. yexingzhe说道:

    我要当小盆友,教我凯撒密码

  3. glm说道:

    非常棒的网站,但貌似这个你这个算法实现还是有问题。。。

sophy 留下回复