回答編集履歴
5
修正
answer
CHANGED
@@ -61,7 +61,7 @@
|
|
61
61
|
|
62
62
|
// バイト列->16進文字列に変換
|
63
63
|
const hexes = (ary) => {
|
64
|
-
return ary.map((e) => ( '00' + (e < 0 ? e += 0x0100 : e)).slice(-2)).join('')
|
64
|
+
return ary.map((e) => ( '00' + (e < 0 ? e += 0x0100 : e).toString(16)).slice(-2)).join('')
|
65
65
|
}
|
66
66
|
|
67
67
|
const url = 'https://tortuga-prod-fe.s3-us-west-2.amazonaws.com/%2FNinetyDays/amzn1.tortuga.3.5d4685fe-cdf1-4f37-8dfc-a25b85468e34.T1J5QXLEXAMPLE';
|
@@ -115,7 +115,7 @@
|
|
115
115
|
|
116
116
|
// バイト列->16進文字列に変換
|
117
117
|
const hexes = (ary) => {
|
118
|
-
return ary.map((e) => ( '00' + (e < 0 ? e += 0x0100 : e)).slice(-2)).join('')
|
118
|
+
return ary.map((e) => ( '00' + (e < 0 ? e += 0x0100 : e).toString(16)).slice(-2)).join('')
|
119
119
|
}
|
120
120
|
|
121
121
|
const bdata = [-57,18,25,-58,21,-23,-97,27,-38,30,-76,-118,54,70,-101,-74,75,-79,-5,15,-52,119,84,-55,7,34,-11,-65,-85,106,-46,-124,27,41,-77,58,-3,-43,-98,43,-99,-17,51,-78,56,-32,102,-15,-62,33,-97,-25,-88,-62,-88,-47,-74,100,55,-61,24,103,-44,-10,-41,-24,-102,71,-64,-107,119,-24,25,-62,-37,-103,-28,-123,119,120,6,87,60,-97,16,-13,-50,66,35,67,69,-91,-23,-28,-68,30,112,93,28,-54,82,91,-22,26,33,84,-34,-67,-100,47,32,-100,103,96,-99,38,-91,-128,14,-93,67,-26,-88,56,-35,32,4,-9,-86,100,-60,59,-7,47,84,-86,-92,-20,38,26,-21,8,-54,-77,46,11,85,-2,-48,8,-117,-55,14,-24,106,37,123,-80,35,-43,-117,30,86,45,-9,107,30,-93,-28,29,-126,112,-97,-103,66,57,82,-62,-13,-20,-119,-110,-127,-15,-76,105,93,-119,87,98,-28,-100];
|
4
answer
CHANGED
@@ -99,7 +99,7 @@
|
|
99
99
|
-----
|
100
100
|
|
101
101
|
# (参考) 動作検証コード
|
102
|
-
(decrypt_test2を実行すると、Googleドライブのルートフォルダに「test_decrypt.txt」という名前のフ
|
102
|
+
(decrypt_test2を実行すると、Googleドライブのルートフォルダに「test_decrypt.txt」という名前のファイルが作られます)
|
103
103
|
```GAS
|
104
104
|
|
105
105
|
const decrypt_test2 = () => {
|
3
answer
CHANGED
@@ -30,8 +30,8 @@
|
|
30
30
|
したがって、これを直接GAS上で意味のある文字列として表示することはできません。
|
31
31
|
|
32
32
|
そこで、
|
33
|
-
16進文字列 -> Blob化 -> Googleドライブに適当な名前で保存 -> Googleスプレッドシートでインポート
|
33
|
+
16進文字列 -> Blob化 -> Googleドライブに適当な名前で保存 -> Googleスプレッドシート等でインポート
|
34
|
-
という流れでデータを復元
|
34
|
+
という流れでデータを復元できます。
|
35
35
|
|
36
36
|
下のコードは、Googleドライブの保存まで行っています。
|
37
37
|
|
@@ -42,8 +42,9 @@
|
|
42
42
|
# 修正(例)
|
43
43
|
上記を踏まえて質問文を修正すると下記のようになります。
|
44
44
|
decrypt_test を実行後、エラーがなければ、Googleドライブのルートフォルダに「decrypted.txt」という名前のファイルが作られているはずです。
|
45
|
+
あとはこれをGoogleスプレッドシートまたはExcel等でテキストインポートすればOKです。
|
45
46
|
|
46
|
-
(keyやivは”EXAMPLE”を含む文字列のまま修正していませんので、そのままコピペしても正常に復号されま
|
47
|
+
(下記のコードでは、keyやivは”EXAMPLE”を含む文字列のまま修正していませんので、そのままコピペしても正常に復号されないと思います。正しいkey, ivに修正してください。)
|
47
48
|
|
48
49
|
|
49
50
|
```GAS
|
@@ -98,7 +99,7 @@
|
|
98
99
|
-----
|
99
100
|
|
100
101
|
# (参考) 動作検証コード
|
101
|
-
(decrypt_test2を実行すると、ルートフォルダに「test_decrypt.txt」という名前のフォルダが作られます)
|
102
|
+
(decrypt_test2を実行すると、Googleドライブのルートフォルダに「test_decrypt.txt」という名前のフォルダが作られます)
|
102
103
|
```GAS
|
103
104
|
|
104
105
|
const decrypt_test2 = () => {
|
2
answer
CHANGED
@@ -35,7 +35,8 @@
|
|
35
35
|
|
36
36
|
下のコードは、Googleドライブの保存まで行っています。
|
37
37
|
|
38
|
+
Googleスプレッドシートでのテキストファイルのインポートについては
|
38
|
-
|
39
|
+
https://help.loyverse.com/jp/help/how-open-csv-file-google-sheets 参照。
|
39
40
|
|
40
41
|
-----
|
41
42
|
# 修正(例)
|
@@ -131,7 +132,7 @@
|
|
131
132
|
).toString();
|
132
133
|
|
133
134
|
|
134
|
-
// 16進文字列をバイナリファイルとして保存
|
135
|
+
// 16進文字列をバイナリ化しファイルとして保存
|
135
136
|
const bin = bytes(dec);
|
136
137
|
const myBlob = Utilities.newBlob(bin, MimeType.TEXT, "test_decrypt.txt");
|
137
138
|
DriveApp.createFile(myBlob);
|
1
修正
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
このために、cCryptoGSには下記のような関数が用意されています。
|
6
6
|
|
7
|
-
・cCryptoGS.CryptoJS.enc.Base64.parse(引数:Base64エンコード
|
7
|
+
・cCryptoGS.CryptoJS.enc.Base64.parse(引数:Base64エンコード後の文字列(例:"cXd3aHJpMjNvZyA="))
|
8
8
|
・cCryptoGS.CryptoJS.enc.Hex.parse(引数:16進文字列(例"4A5F2CDD0B...."))
|
9
9
|
|
10
10
|
->それぞれの関数の戻り値は、cCryptoGSが処理可能なWordArrayオブジェクトとなります。
|
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
|
28
28
|
3.復号データの取り扱いについて
|
29
|
-
toString()した復号データは、**
|
29
|
+
toString()した復号データは、**Shift JISでエンコードされた文字を含むタブ区切りファイルのバイナリを16進数文字列化したもの**になっています。
|
30
30
|
したがって、これを直接GAS上で意味のある文字列として表示することはできません。
|
31
31
|
|
32
32
|
そこで、
|