38473
|
1 |
/* Title: Pure/General/sha1.scala
|
|
2 |
Author: Makarius
|
|
3 |
|
|
4 |
Digesting strings according to SHA-1 (see RFC 3174).
|
|
5 |
*/
|
|
6 |
|
|
7 |
package isabelle
|
|
8 |
|
|
9 |
|
|
10 |
import java.security.MessageDigest
|
|
11 |
|
|
12 |
|
|
13 |
object SHA1
|
|
14 |
{
|
|
15 |
def digest_bytes(bytes: Array[Byte]): String =
|
|
16 |
{
|
|
17 |
val result = new StringBuilder
|
|
18 |
for (b <- MessageDigest.getInstance("SHA").digest(bytes)) {
|
|
19 |
val i = b.asInstanceOf[Int] & 0xFF
|
|
20 |
if (i < 16) result += '0'
|
|
21 |
result ++= Integer.toHexString(i)
|
|
22 |
}
|
|
23 |
result.toString
|
|
24 |
}
|
|
25 |
|
|
26 |
def digest(s: String): String = digest_bytes(Standard_System.string_bytes(s))
|
|
27 |
}
|
|
28 |
|