1. 數據加密主要涉及三要素
數據加密主要涉及三要素:明文、密鑰、密文。
非對稱加密:
在加解密的時候,使用的是不同的密鑰:一個是公鑰,一個是私鑰
密鑰的使用:
公鑰加密,私鑰解密
私鑰解密,公鑰加密
密鑰的特點:
公鑰:公共的密鑰,可以發給任何人
私鑰:只有生成密鑰的一端可以持有,其他人不能知曉,所以需要保管好私鑰
加密速度慢,加密效率低(相對於對稱加密)
適合加密少量的數據
加密等級較高(相對於對稱加密)
非對稱加密的密鑰分發指的是公鑰的分發,私鑰需要保存好
2. 一段明文如何加密為密文
可以用古典密碼進行加密
古典密碼常用的有凱撒加密等等
要好理解的話我說一下吧
比如明文abcd密鑰5密文efgh就是將字母順序向右移動五位(位移5)
現在用凱撒密碼加密一句話iloveyou
密文為nqtajdtz
還有一個反字母表加密
字母表abcdefghijklmnopqrstuvwxyz
反字母表zyxwvutsrqponmlkjihgfedcba
比如abcdefg加密後為stuvwyz
FunctionCaesar(str,offset)
Dimlength,char,i
Caesar=""
length=Len(str)
Fori=1Tolength
char=Mid(str,i,1)
Ifchar>="A"Andchar<="Z"Then
char=Asc("A")+(Asc(char)-Asc("A")+offset)Mod26
Caesar=Caesar&Chr(char)
ElseIfchar>="a"Andchar<="z"Then
char=Asc("a")+(Asc(char)-Asc("a")+offset)Mod26
Caesar=Caesar&Chr(char)
Else
Caesar=Caesar&char
EndIf
Next
EndFunction
inputbox"密文:","凱撒密碼",Caesar("iloveyou",5)
'"iloveyou"是要加密的字元串;5是字母的位移數
Input=Inputbox("輸入字元加解密","反字母表加解密")
IfInput=""ThenWscript.quit
Fori=1ToLen(LCase(Input))
IfMid(LCase(Input),i,1)="a"ThenOutput=Output&"z"
IfMid(LCase(Input),i,1)="b"ThenOutput=Output&"y"
IfMid(LCase(Input),i,1)="c"ThenOutput=Output&"x"
IfMid(LCase(Input),i,1)="d"ThenOutput=Output&"w"
IfMid(LCase(Input),i,1)="e"ThenOutput=Output&"v"
IfMid(LCase(Input),i,1)="f"ThenOutput=Output&"u"
IfMid(LCase(Input),i,1)="g"ThenOutput=Output&"t"
IfMid(LCase(Input),i,1)="h"ThenOutput=Output&"s"
IfMid(LCase(Input),i,1)="i"ThenOutput=Output&"r"
IfMid(LCase(Input),i,1)="j"ThenOutput=Output&"q"
IfMid(LCase(Input),i,1)="k"ThenOutput=Output&"p"
IfMid(LCase(Input),i,1)="l"ThenOutput=Output&"o"
IfMid(LCase(Input),i,1)="m"ThenOutput=Output&"n"
IfMid(LCase(Input),i,1)="n"ThenOutput=Output&"m"
IfMid(LCase(Input),i,1)="o"ThenOutput=Output&"l"
IfMid(LCase(Input),i,1)="p"ThenOutput=Output&"k"
IfMid(LCase(Input),i,1)="q"ThenOutput=Output&"j"
IfMid(LCase(Input),i,1)="r"ThenOutput=Output&"i"
IfMid(LCase(Input),i,1)="s"ThenOutput=Output&"h"
IfMid(LCase(Input),i,1)="t"ThenOutput=Output&"g"
IfMid(LCase(Input),i,1)="u"ThenOutput=Output&"f"
IfMid(LCase(Input),i,1)="v"ThenOutput=Output&"e"
IfMid(LCase(Input),i,1)="w"ThenOutput=Output&"d"
IfMid(LCase(Input),i,1)="x"ThenOutput=Output&"c"
IfMid(LCase(Input),i,1)="y"ThenOutput=Output&"b"
IfMid(LCase(Input),i,1)="z"ThenOutput=Output&"a"
IfMid(LCase(Input),i,1)=""ThenOutput=Output&""
Next
MsgboxOutput,0,"反字母表加解密"