プログラミング エンジニア全般

【GAS】HMAC SHA 256を使って、文字列をキーでハッシュ化する方法

スポンサーリンク

こんにちは!

今回は「GASでHMAC SHA 256を使って、文字列をキーでハッシュ化する方法」についてお伝えしたいと思います。

GASから外部サービスのAPIを叩くときに、HMAC SHA 256を使ったので、方法を共有します。

GASにおけるHMAC SHA 256の書き方

まず、GASにおけるHMAC SHA 256の関数は以下になります。

HMAC SHA 256

Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_256, value, key)

このままだと返却値が配列になってしまい使いづらいので、変形します。

以下は実際のHMAC SHA 256を使ったハッシュ値取得の書き方になります。

 // HMAC SHA 256ハッシュ化
const convertToHMmacSHA256 = (text, SECRET_KEY) => {
  const rowHash = Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_256, text, SECRET_KEY);
  let txtHash = '';
  for (i = 0; i < rowHash.length; i++) {
    let hashVal = rowHash[i];
    if (hashVal < 0) {
      hashVal += 256;
    }
    if (hashVal.toString(16).length == 1) {
      txtHash += '0';
    }
    txtHash += hashVal.toString(16);
  }
  return txtHash;
};

// 関数呼び出し
const value = 'timeStamp body={id: 1}';
const key = 'abc123';
convertToHMmacSHA256('text', value);

 

これでHMAC SHA 256を使って、文字列をキーでハッシュ化することができました!

MD5などのハッシュアルゴリズムも可能

GASでHMAC MD5など、別のアルゴリズムを使いたい場合は上記のパラメータを修正するだけで可能です。

HMAC_MD5
Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_MD5, value, key)

HMAC_SHA_1
Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_1, value, key)

HMAC_SHA_384
Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_384, value, key)

HMAC_SHA_512
Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_512, value, key)

参考

https://developers.google.com/apps-script/reference/utilities/utilities#computehmacsha256signaturevalue,-key_1

https://developers.google.com/apps-script/reference/utilities/mac-algorithm

以上、お疲れさまでした〜🍵

スポンサーリンク

-プログラミング, エンジニア全般

© 2022 エンジニア×ライフハック Powered by AFFINGER5