Spaces:
Sleeping
Sleeping
GPTfree api
commited on
Create code00001.js
Browse files- code00001.js +45 -0
code00001.js
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
最終的なエンコードコード(^ 2 に修正)
|
2 |
+
javascript
|
3 |
+
コードをコピーする
|
4 |
+
let str = "https://x.gd";
|
5 |
+
|
6 |
+
// 奇数番目の文字にXOR演算を適用
|
7 |
+
let encoded = str
|
8 |
+
.split("") // 文字列を1文字ずつ分解
|
9 |
+
.map((char, ind) => {
|
10 |
+
// 奇数番目の文字にXOR演算(charCodeAt()で文字コード取得)
|
11 |
+
if (ind % 2 !== 0) {
|
12 |
+
return String.fromCharCode(char.charCodeAt() ^ 2); // XOR演算(^2に変更)
|
13 |
+
}
|
14 |
+
return char; // 偶数番目の文字はそのまま
|
15 |
+
})
|
16 |
+
.join(""); // 文字列に戻す
|
17 |
+
|
18 |
+
// URLエンコード
|
19 |
+
encoded = encodeURIComponent(encoded);
|
20 |
+
|
21 |
+
console.log(encoded); // 期待されるエンコード結果を表示
|
22 |
+
最終的なデコードコード
|
23 |
+
javascript
|
24 |
+
コードをコピーする
|
25 |
+
function decode(encodedStr) {
|
26 |
+
// URLデコード
|
27 |
+
let decodedStr = decodeURIComponent(encodedStr);
|
28 |
+
|
29 |
+
// 文字列を1文字ずつ処理
|
30 |
+
return decodedStr
|
31 |
+
.split("")
|
32 |
+
.map((char, ind) => {
|
33 |
+
// 奇数番目の文字に対してXOR演算を戻す
|
34 |
+
if (ind % 2 !== 0) {
|
35 |
+
return String.fromCharCode(char.charCodeAt() ^ 2); // XOR演算(^2に変更)
|
36 |
+
}
|
37 |
+
// 偶数番目の文字はそのまま
|
38 |
+
return char;
|
39 |
+
})
|
40 |
+
.join(""); // 文字列に戻す
|
41 |
+
}
|
42 |
+
|
43 |
+
// 使用例
|
44 |
+
let encoded = "hvtrs8%2F-x%2Cgf%2F"; // エンコードされた文字列
|
45 |
+
console.log(decode(encoded)); // 元の文字列 "https://x.gd" を表示
|