Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/utils/platforms/rhino/lib/md5.js
blob: 265df51224decbbeaaa0e90f9980c12f30e5ac52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

var binary = require("./binary");

var JString = Packages.java.lang.String,
    JInteger = Packages.java.lang.Integer,
    JStringBuffer = Packages.java.lang.StringBuffer,
    JMessageDigest = Packages.java.security.MessageDigest;

exports.hash = function (str) {
    var jstr = new JString(str);
    var algorithm = JMessageDigest.getInstance("MD5");
    algorithm.reset();
    algorithm.update(jstr.getBytes());
    var bytes = algorithm.digest();
    return binary.ByteString(bytes);
};

// deprecated
// 

var MD5 = exports.MD5 = {};

MD5.hexdigest = function(str) {
    system.log.warn('hexdigest is depreacted, use md5.hash().toString(16)');
    var jstr = new JString(str);
    var algorithm = JMessageDigest.getInstance("MD5");
    
    algorithm.reset();
    algorithm.update(jstr.getBytes());

    var messageDigest = algorithm.digest();
    
    var hexString = new JStringBuffer();
    for (var i = 0; i < messageDigest.length; i++) {
        hexString.append(JInteger.toHexString(0xFF & messageDigest[i]));
    }

    return String(hexString.toString());
};