Python/Ruby/JavaでSHA-1
SHA-1とは
認証やデジタル署名などに使われるハッシュ関数(要約関数)のひとつ。2の64乗ビット以下の原文から160ビットの「ハッシュ値」を生成し、通信経路の両端で比較することで、通信途中で原文が改ざんされていないかを検出することができる。計算方法には初期値敏感性の不可逆な一方向関数を含むため、ハッシュ値は擬似的な乱数のような値をとり、これをもとに原文を再現することはできない。また、同じハッシュ値を生成する別のメッセージを作成することも極めて困難である。1995年に米国標準技術局(NIST)によってアメリカ政府の標準ハッシュ関数として採用された。インターネット上で安全に通信を行うためのIPsecなどに応用されている。
http://e-words.jp/w/SHA-1.html
gitのリビジョン番号にも使われています
import hashlib text="任意の文字列" print hashlib.sha1(text).hexdigest()
require 'digest/sha1' text = "任意の文字列" print Digest::SHA1.hexdigest(text)
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Sample { public static void main(String args[]) { String text = "任意の文字列"; try { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(text.getBytes()); byte digest[] = md.digest(); String hash = ""; for (byte aDigest : digest) { String hex = Integer.toHexString(aDigest); if (hex.length() == 1){ hex = "0" + hex; } hex = hex.substring(hex.length() - 2); hash += hex; } System.out.println(hash); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } }