2011-12-29 1 views
6

新しいバージョンのブラウザが登場するたびに、webGLや誰もが追いつくかどうかわからない他の技術など、新しいものが追加されていくことを知りました。最新のブラウザにはjavascriptの文字列ハッシュ関数が組み込まれていますか?

しかし、誰かがハッシュ関数(MD5、SHA1など)のようなJSのような基本的なことについてこれまで考えていたのだろうかと思います。ソリューションを見ると、あまりにもオペラ12、クロム17またはFirefox 10のような私は、今日の開発バージョンを意味し、最新のブラウザで

私はここに別のスレッドでこのコメントを見つけました:https://stackoverflow.com/questions/7204097/short-hashing-function-for-javascriptあなたはすでにそのJavaScriptのオブジェクトを知っていますかハッシュテーブルはです)。では、これらのハッシュテーブルは何ですか?私はハッシュに任意の文字列を作ることができますが、md5やsha1のような確立された文字列ではなく、いくつかのJSが具体的に構築されていることを意味しますか?

は、基本的に、私は何をする必要があるかである:

var txt="Hello world!"; 
var hash = txt.toSha1(); 
+1

ハッシュ関数(マッピングのための関数)を持つ混乱しているハッシュテーブル( '{name:" bob "、dob:" 27/1/1970 "}'のような名前付きキーに対して値を格納するオブジェクト) md5のような小さなデータセット) – Quentin

+0

はい、今私は、私が探しているものはハッシュテーブルとは関係がないことを理解しています。 – rsk82

答えて

0

Paul Johnston次のアルゴリズムを実装したJavaScriptで

MD5、RIPEMD-160、SHA-1、SHA-256およびSHA-512

あなたがソースコードと、ここでいくつかの例を見つけることができます。 http://pajhome.org.uk/crypt/md5/

私は、これはあなたがリットルだったものです願っています〜のために吐き出す。

+4

まあまあです。しかし、私の質問は、ブラウザーの新しい開発についてでした。彼らは絶え間なく新しい機能を追加しました。そして、最終的にハッシュも追加するのだろうかと思います。それはこれまでに計画されているのか、それとも設計上、何かがこの問題を阻止しているからでしょうか? – rsk82

+0

ああ、私はブラウザの文脈では分かりませんが、[node.js](http://nodejs.org/)を使用している場合は、既に[暗号パッケージ](http: /nodejs.org/docs/latest/api/crypto.html) –

-7

私がシンプルなクライアント側のハッシングを外部ライブラリなしで使用するには、ブラウザの内蔵atob()btoa()の機能を使用します。

window.btoa()は、バイナリデータの「文字列」からベース64エンコードASCII文字列を作成します。

function utf8_to_b64(str) { 
    return window.btoa(encodeURIComponent(escape(str))); 
} 

window.atob()関数は、ベース64符号化を用いて符号化されたデータの列を復号します。

function b64_to_utf8(str) { 
    return unescape(decodeURIComponent(window.atob(str))); 
} 

http://caniuse.com/#search=btoahttp://caniuse.com/#search=atobは、それが非常

https://developer.mozilla.org/en-US/docs/Web/API/window.btoa

ノートから取られた近代的なブラウザでサポートされて示しています。解決策は、外部ライブラリの依存関係を持っていない上。上記のように、これは単純な暗号化にのみ使用してください。安全な暗号化ソリューションをお探しの場合は、これを使用しないでください。

+5

これは、平文を平らでなく、入力よりも_larger_出力にする有用な可逆1:1 _encoding_です。どちらも、ここで求められる一方向暗号化ハッシュ関数のものとは反対の性質を持つ。 – ecmanaut

3

この情報をまだ探している人は、ブラウザでそれを使用するには2017年

の初めに確定されているように見えますWebCrypto APIがあり、あなたが暗号化のためのメソッドが含まれていwindow.crypto.subtleでそれを見つけることができ、利用可能な機能here上などドキュメントを消化。

関連する問題