Kawanet Blog II

アクセスカウンタ

zoom RSS Google Closureライブラリ: SHA-1ダイジェスト (goog.crypt.Sha1)

<<   作成日時 : 2010/04/17 21:26   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 0 / コメント 0

JavaScript のライブラリを使って、SHA-1 ダイジェスト(入力:ASCII 文字列、出力:16進数の文字列)を計算する方法。

まずは、@herumi さんの CybozuLabs.SHA1 ライブラリ を使った場合:
<script src="sha1.js"></script>
<script><!--
  window.onload = function() {
    var string = (new Date()).getTime();
    var hash = CybozuLabs.SHA1.calc(string);
    alert('SHA1: ' + hash);
  };
//--></script>

次に、Google Closure ライブラリ を使った場合:
<script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js"></script>
<script><!--
  goog.require('goog.crypt');
  goog.require('goog.crypt.Sha1');

  function googCryptSha1(string) {
    var sha1 = new goog.crypt.Sha1();
    var ibytes = goog.crypt.stringToByteArray(string);
    sha1.update(ibytes);
    var obytes = sha1.digest();
    var hash = bytesToHex(obytes);
    return hash;
  };

  function bytesToHex(bytes) {
    var hexchars = '0123456789abcdef';
    var hexrep = new Array(bytes.length * 2);
    for ( var i = 0; i < bytes.length; ++i) {
      hexrep[i * 2] = hexchars.charAt((bytes[i] >> 4) & 15);
      hexrep[i * 2 + 1] = hexchars.charAt(bytes[i] & 15);
    }
    return hexrep.join('');
  };

  window.onload = function() {
    var string = (new Date()).getTime();
    var hash = googCryptSha1(string);
    alert('SHA1: ' + hash);
  };
//--></script>

goog.crypt.Sha1 は、入出力ともに ByteArray 配列となるため、
今回のように、入力:文字列、出力:16進数で取り出す場合には、
明らかに CybozuLabs.SHA1 の方がシンプルで済む。

要は、Google Closure Library を試しに使ってみたかったということ。
JavaScript のソースコードを事前にコンパイル・パックしなくても、
上記のように Google Code のレポジトリ上から直接、ライブラリの
ファイルを直接ダウンロードして使うこともできる。
AJAX Libraries API に入っていないのは、何でだろう?
 

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 1
なるほど(納得、参考になった、ヘー)

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Google Closureライブラリ: SHA-1ダイジェスト (goog.crypt.Sha1) Kawanet Blog II/BIGLOBEウェブリブログ
文字サイズ:       閉じる