Spaces:
Paused
Paused
| 最終的なエンコードコード(^ 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" を表示 |