質問するログイン新規登録

回答編集履歴

5

修正

2021/07/04 16:26

投稿

退会済みユーザー
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

2021/07/04 16:26

投稿

退会済みユーザー
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

2021/07/04 14:14

投稿

退会済みユーザー
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”を含む文字列のまま修正していませんので、そのままコピペしても正常に復号されません適切なkey,ivに修正してください)
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

2021/07/04 14:10

投稿

退会済みユーザー
answer CHANGED
@@ -35,7 +35,8 @@
35
35
 
36
36
  下のコードは、Googleドライブの保存まで行っています。
37
37
 
38
+ Googleスプレッドシートでのテキストファイルのインポートについては
38
- Googleスプレッドシートでのテキストファイルのインポートについては https://help.loyverse.com/jp/help/how-open-csv-file-google-sheets 参照。
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

修正

2021/07/04 14:06

投稿

退会済みユーザー
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()した復号データは、**Shuft JISでエンコードされた文字を含むタブ区切りファイルのバイナリを16進数文字列化したもの**になっています。
29
+  toString()した復号データは、**Shift JISでエンコードされた文字を含むタブ区切りファイルのバイナリを16進数文字列化したもの**になっています。
30
30
  したがって、これを直接GAS上で意味のある文字列として表示することはできません。
31
31
 
32
32
  そこで、