Spaces:
Sleeping
Sleeping
最終的なエンコードコード(^ 2 に修正) | |
javascript | |
コードをコピーする | |
let str = "https://x.gd"; | |
// 奇数番目の文字にXOR演算を適用 | |
let encoded = str | |
.split("") // 文字列を1文字ずつ分解 | |
.map((char, ind) => { | |
// 奇数番目の文字にXOR演算(charCodeAt()で文字コード取得) | |
if (ind % 2 !== 0) { | |
return String.fromCharCode(char.charCodeAt() ^ 2); // XOR演算(^2に変更) | |
} | |
return char; // 偶数番目の文字はそのまま | |
}) | |
.join(""); // 文字列に戻す | |
// URLエンコード | |
encoded = encodeURIComponent(encoded); | |
console.log(encoded); // 期待されるエンコード結果を表示 | |
最終的なデコードコード | |
javascript | |
コードをコピーする | |
function decode(encodedStr) { | |
// URLデコード | |
let decodedStr = decodeURIComponent(encodedStr); | |
// 文字列を1文字ずつ処理 | |
return decodedStr | |
.split("") | |
.map((char, ind) => { | |
// 奇数番目の文字に対してXOR演算を戻す | |
if (ind % 2 !== 0) { | |
return String.fromCharCode(char.charCodeAt() ^ 2); // XOR演算(^2に変更) | |
} | |
// 偶数番目の文字はそのまま | |
return char; | |
}) | |
.join(""); // 文字列に戻す | |
} | |
// 使用例 | |
let encoded = "hvtrs8%2F-x%2Cgf%2F"; // エンコードされた文字列 | |
console.log(decode(encoded)); // 元の文字列 "https://x.gd" を表示 |