我想編碼/ AS3中解碼的字符串:閃光AS3串編解碼
var string:String = "This is an text";
encode(string)
會給例如:yuioUasUenUwdfr
。
decode(encoded(string))
將給:This is an text
。
它不必是安全的或任何東西。
我想編碼/ AS3中解碼的字符串:閃光AS3串編解碼
var string:String = "This is an text";
encode(string)
會給例如:yuioUasUenUwdfr
。
decode(encoded(string))
將給:This is an text
。
它不必是安全的或任何東西。
另一種選擇是使用XOR cypher和一個鍵。當然,這種方法是完全可以破解的,但是它需要更多的工作,所以爲了模糊你的文本,它應該沒問題。
這是一個簡單的實現。 (它使用hurlant's Base64 encoder;這只是爲了讓二進制安全的,不會增加更多的默默無聞)
import com.hurlant.util.Base64;
function applyXor(inputBuffer:ByteArray,key:String):ByteArray {
var outBuffer:ByteArray = new ByteArray();
var keysBuffer:ByteArray = new ByteArray();
keysBuffer.writeUTFBytes(key);
var offset:int = 0;
var inChar:int;
var outChar:int;
var bitMask:int;
while(inputBuffer.bytesAvailable) {
offset = inputBuffer.position % keysBuffer.length;
inChar = inputBuffer.readUnsignedByte();
bitMask = keysBuffer[offset];
outChar = bitMask^inChar;
outBuffer.writeByte(outChar);
}
return outBuffer;
}
function encode(input:String,key:String):String {
var inputBuffer:ByteArray = new ByteArray();
inputBuffer.writeUTFBytes(input);
inputBuffer.position = 0;
var out:ByteArray = applyXor(inputBuffer,key);
return Base64.encodeByteArray(out);
}
function decode(input:String,key:String):String {
var inputBuffer:ByteArray = Base64.decodeToByteArray(input);
var out:ByteArray = applyXor(inputBuffer,key);
out.position = 0;
return out.readUTFBytes(out.length);
}
var str:String = "This is some text. Let's add non-ascii chars like Ñ,à,ü, etc, just to test it.";
var key:String = "whatever &^%$#";
var encoded:String = encode(str,key);
var decoded:String = decode(encoded,key);
trace(encoded);
trace(decoded);
trace(decoded == str);
謝謝,夥計們!得到它並與com.hurlant.util.Base64一起運行。
如果您正在構建AIR應用程序,則可以使用EncryptedLocalStore類對數據進行加密。
ROT13看起來不錯。任何想法都可以與特殊字符(*&^%$#)一起使用? – Allard 2010-10-05 23:13:32
這是他指的lib:http://github.com/mikechambers/as3corelib – UltimateBrent 2010-10-06 00:36:06