FileName$ = InputBox("请输入需要加密的文件名及路径:")
Open FileName$ For Input As #1
Line Input #1, yw$
Close #1
xw$ = ""
n = Len(yw$)
For i = 1 To n
yz$ = Mid$(yw$, i, 1)
xz$ = Chr(Asc(yz$) - 10)
xw$ = xw$ &xz$
Next
Open FileName$ For Output As #1
Print #1, xw$
Close #1
MsgBox "####加密已完成!!####"
End
End Sub
在做游戏或应用的时候,一些本地数据为了安全需要加密。最简单的加密方式当然是异或加密了,但异或之后输出的是数据块,并非字符串,有效且省空间的做法是装数据块转成Base64了,Base64之后的空间占用约为原数据的133%左右.
因为在使用过种中,会用到数据块,这里用字节数组 Uint8Array 来存储数据块,并需要Uint8Array与String UTF8的互转.
网上也有很多异或的算法,很多都是用 charCodeAt 和 fromCharCode 来对字符串直接操作的,这样的操作在ts中很不错也不会出问题.但我还是比较喜欢转成用字节数组来操作,在种在网络通讯中,跨平台跨语言时不容易出错.
Base64算法在js原生平台有库,使用Buffer类就能实现. Base64的算法也挺简单的,这里为了配合异或加密还是自己写一个.
回到主题,从上面异或加密和Base64编码的方法中,很容易就能找出规律,要合并二个算法,只要在Base64编码的时候对编码时的字节做一个异或操作就可以了.