我想在AS3中对字符串进行编码/解码:
var string:String = "This is an text";
encode(string)
会举例:yuioUasUenUwdfr
decode(encoded(string))
会:This is an text
它不必是安全的或任何东西。
答案 0 :(得分:1)
答案 1 :(得分:1)
另一种选择是使用带有密钥的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);
答案 2 :(得分:1)
谢谢,伙计们!了解并运行com.hurlant.util.Base64。
答案 3 :(得分:0)
如果您正在构建AIR应用程序,则可以使用EncryptedLocalStore类加密数据。