加密程序
我用VB編的一個小巧的加密工具,最大可加密10MB的文件。
算法: 數據規模及結構: 採用(1..3300,1..3300)Byte數組,規模約爲10MB。
加密算法: 1、矩陣錯排 將字串以識別碼爲分割,形成矩陣,再將矩陣豎排。
例如字串:Washington is the father of the United States of America. 設識別碼(矩陣長度)爲5,則生成以下矩陣: ┌───┐ │Washi │ │ngton │ │is th │ │e fat │ │her o │ │f the │ │ Unit │ │ed St │ │ates │ │of Am │ │erica │ │. │ └───┘
依次豎排生成以下串: Wniehf eaoe.ags e Udtfr$st frtn e i$hota hiSsAc$inhtoett ma$ 該串爲矩陣錯排後的值。
2、Ascii碼位移 將每個字符的Ascii碼分別增加位移碼,滿255歸0。 位移碼=(識別碼 mod 255 +1)
識別碼生成算法: 將密碼每一位Ascii碼的絕對值累加並與識別碼範圍求模並識別碼最小值。
參考源程序:
Public Function GetPwd(ByVal Strs As String) As Long
Dim Length As Integer, I As Integer, U As Long
Length = Len(Strs)
U = 0
For I = 1 To Length
U = U + Abs(Asc(Mid(Strs, I, 1)))
Next I
U = U Mod (a - aMin) + aMin
GetPwd = U
End Function