質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ハッシュ

ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

Arch Linux

arch(アーク)は、バージョン管理システムです。 また、リポジトリ(アーカイブ)操作を行えるツールの総称として扱われています。

Q&A

解決済

1回答

1955閲覧

OpenSSLとGASのUtilitiesにおけるハッシュなどの互換性

ebal

総合スコア62

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ハッシュ

ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

Arch Linux

arch(アーク)は、バージョン管理システムです。 また、リポジトリ(アーカイブ)操作を行えるツールの総称として扱われています。

0グッド

1クリップ

投稿2020/10/22 03:15

前提・実現したいこと

Google Drive にアップロードする必要のあるファイルのためのアップローダーを作りたい.しかし念の為パブリックで公開したくはない.
そのため,Linux環境とGASで認証を行いたい.
ただし,Googleアカウントの認証は組織の問題で使えない.
(Google認証を組織の認証が代替しておりAPIキーが有効にならない)

上の説明を飛ばしても問題ない結論としては,OpenSSL 他Linuxのコマンドによる結果とGASのUtilitiesによる結果をすり合わせることはできないだろうか.

あるいは,GASによって生成されるURLは割と長いので確率的に不正アクセスの可能性は低いとみなして無視するべきだろうか.

発生している問題・エラーメッセージ

OpenSSLで生成するHMACも,そもそもSHA256sumもGASのそれと一致しない.

該当のソースコード

shell

1echo 1234 | openssl dgst -sha256 -hmac "SAMPLE_SECRET" -binary | base64 2# SMIh3v+wmulRAbYMkppy/PPIkTNEG/qH7bu+pFFrsJU=

GAS

1function myFunction() { 2 var hmacSecret = "SAMPLE_SECRET"; 3 var plain = "1234"; 4 var hmac = Utilities.computeHmacSha256Signature(plain, hmacSecret); 5 Logger.log(Utilities.base64Encode(hmac)); 6} 7// 8csaE+6AVXokdpii4pIV1IHXAG/HdGFG3U5eK15LBH8=

試したこと

  • 単純にSHA256を生成し比較
  • SECRET_KEYの変更

補足情報(FW/ツールのバージョンなど)

  • OpenSSL : OpenSSL 1.1.1h 22 Sep 2020
  • OS : Arch Linux(2020/10/20 update)
  • GAS : v8 engine 未使用(File blobまわりのバグのため)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

取り敢えず、OpenSSLの例では処理対象が echo 1234 というコマンドの出力から来ていて 1234+改行という5文字となっているところ、GASで対応する plain は改行なしの文字列なので、比較対象として合っていないかと思います。
※改行なしで渡したいなら echo -n 1234

投稿2020/10/22 16:35

angel_p_57

総合スコア1672

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ebal

2020/10/23 06:37

何も考えず使っていましたし(shellの設定で改行なくてもされるようにしてる)忘れてましたがechoは改行ありましたね…… 最後の目標,アップロードするファイルの署名検証もうまく行けばいいなと祈りながらがんばります.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問