This is a creation in Article, where the information may have evolved or changed.
Package Mainimport ("FMT" "StrConv" "strings") Func EncryptData (Code_data string, Callback_key String) string {dataarr: = [ ]rune (code_data) Keyarr: = []byte (callback_key) Keylen: = Len (Keyarr) var tmplist []intfor Index, Value: = Range Dataarr {bas E: = Int (value) datastring: = base + int (0xff&keyarr[index%keylen]) tmplist = append (tmplist, datastring)}var str strin Gfor _, Value: = Range Tmplist {str + = "@" + FMT. Sprintf ("%d", value)}return str}func decryptdata (Nt_data string, Callback_key String) string {strLen: = Len (nt_data) NewData: = []rune (nt_data) Resultdata: = String (Newdata[1:strlen]) Dataarr: = Strings. Split (Resultdata, "@") Keyarr: = []byte (callback_key) Keylen: = Len (Keyarr) var tmplist []intfor Index, Value: = Range Dataar R {Base, _: = StrConv. Atoi (value) datastring: = Base-int (0xff&keyarr[index%keylen]) tmplist = append (tmplist, datastring)}var str Stringfor _, Val: = range Tmplist {str + = string (Rune (val))}return Str}func Main () {testData: = "#test%data _code$@ This is a simple The test example ===**! @#¥%......&* ()--+ "TestKey: =" test! Key "Encode: = EncryptData (TestData, TestKey) fmt. Println (encode) Decode: = Decryptdata (encode, TestKey) fmt. Println (Decode)}
class cryptDataClass:def getByte(self, data):tmp = [];for s in data:tmp.append(ord(s));return tmp;def getChars(self, byte):str = '';for n in byte:str += chr(n);return str;def encryptData(self, data, keys):tmpList = [];dataArr = self.getByte(data);keyArr = self.getByte(keys);keyLen = len(keyArr);for index,value in enumerate(dataArr):tmpList.append(str((0xFF & value) + (0xFF & keyArr[index % keyLen])));return "@" + "@".join(tmpList);def decryptData(self, data, keys):tmpList = [];dataArr = data.split("@");del(dataArr[0]);keyArr = self.getByte(keys);keyLen = len(keyArr);for index,value in enumerate(dataArr):tmpList.append(int(value) - (0xFF & keyArr[index % keyLen]) );return self.getChars(tmpList);data = '#test %data _code$@这是一个简单的测试示例===*******~!@#¥%……&*()——+';key = 'test! key';cc = cryptDataClass();endata = cc.encryptData(data, key);print endata;dedata = cc.decryptData(endata, key)print dedata;