密碼演算法大致:
str=」abcdefghijklmn…」 '共94個可列印字元
key = 2^0,2^1,2^2… 2^5 到2^5
加密過程:明文,反轉,加密,密文
每個明文對應2個密文
解密過程:密文,解密,反轉,原文
每2個密文對應1個原文
偽碼:加密過程
str=」abcdefghijklmn…」 '共94個可列印字元
dec_pass 』加密後字串,密文
org_pass 』明文
org_pass.setreverse 』字串反轉
for i=0 to org_pass.length
index = asc(org_pass.substring(i,1)) –2^(i mod 6) 』取ascii碼值
if index > 94 then
dec_pass= dec_pass & 「1」 &str(index - 32) 』 str(index ) 字串中的字元
else
dec_pass= dec_pass & 「0」 &str(index )
end if
end for
return dec_pass
解密過程
org_pass 』原文
for i=1 to dec_pass.length step 2
if dec_pass.substring(i,1) = 「1」 then
org_pass = org_pass &chr(instr(str,dec_pass.substring(i+1,1)) + (i+1) mod 6 + 32)
else 』 chr(intascii) 返回對應ascii碼的字元,為這符串型別
org_pass = org_pass &chr(instr(str,dec_pass.substring(i+1,1)) + (i+1) mod 6 )
end if
end for
org_pass.setreverse
return org_pass
具體實現,這裡就不詳述,有興趣的,可以試試,本人用vb實現過,現貼結果如下:
org_pass: 123456
dec_pass: 0z0w0r0i0r0v
演算法比較簡單,但還算實用,哈。。。
簡單的加密解密演算法
本文描述一種專案中採用的簡單加密解密演算法,通過把多種演算法進行組合。特點是同個字串不同時間加密結果不同,混合了多種加密方式,很難用統計的方式對密文進行破解。專案中僅是對密碼進行加密,規定密碼長度不超過16個字元,故以下的演算法均是固定長度的。1 擴充套件字串 在加密字串末加 0 之後新增隨機字串擴...
簡單的加密解密演算法
本文描述一種專案中採用的簡單加密解密演算法,通過把多種演算法進行組合。特點是同個字串不同時間加密結果不同,混合了多種加密方式,很難用統計的方式對密文進行破解。專案中僅是對密碼進行加密,規定密碼長度不超過16個字元,故以下的演算法均是固定長度的。1 擴充套件字串 在加密字串末加 0 之後新增隨機字串擴...
加密,解密演算法
private symmetricalgorithm mcsp 宣告對稱演算法變數 private const string civ mi56 4zujhy12se6yjy111a 初始化向量 private const string ckey jkhuiy9d 9i 金鑰 常量 其中civ裡面的值...