アプリケーションで localStorage を使用しています。
ストレージに入る前にデータをマスクするために、XOR ビットシフト操作を使用しています。
マスキング機能は次のとおりです。
encrypt: function (str) {
var encoded = [];
if (!App.crypto.key) {
App.crypto.init();
}
for (var i = 0, len = str.length; i < len; i++) {
var a = str.charCodeAt(i);
var b = a ^ App.crypto.key.charCodeAt(App.crypto.key % i);
encoded.push(String.fromCharCode(b));
}
return encoded.join("");
}
この場合に使用しているキーの値は、「MWZ2cyt2N3JwejhxUjA2V3ptRmwxcmVvU09IbFhORHdOcDRiWGh5SGRZMFU4Ym9VY1Y1WXU5c2d6OXhBdU9wTSt1MlpqcmhXOVBRPQ0K」です。
IE9 で "[]" をマスクすると、奇妙な文字が表示されます。それを localStorage に設定しようとすると、無効な引数エラーが発生します。何が起こっているのか知っている人はいますか?