开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 143|回复: 4
收起左侧

[已解决] 求个HmacSHA1 Base64的js代码

 关闭 [复制链接]
结帖率:90% (70/78)
发表于 昨天 09:27 | 显示全部楼层 |阅读模式   河南省商丘市
8精币
求个HmacSHA1 Base64的js代码,是了几个工具结果都不一样,但是用现在加密工具输出的结果是一样的   密钥:B5DYBZPKP5Bj9Q02sCwXeNpWfbpSt4nG9PjJ
内容:B5DYBZPKP5Bj9Q02sCwXeNpWfbpSt4nG9PjJ1754786995297

结果:f+0tqXwH0UfgFSvEhYlGxsCdddU=

需要可执行的js代码。谢谢





最佳答案

查看完整内容

/* CryptoJS v3.1.2 code.google.com/p/crypto-js (c) 2009-2013 by Jeff Mott. All rights reserved. code.google.com/p/crypto-js/wiki/License */ var CryptoJS = CryptoJS || function(g, l) { var e = {}, d = e.lib = {}, m = function() { }, k = d.Base = {extend: function(a) { m.prototype = this; var c = new m; a && c.mixIn(a); c.hasOwnProperty("init ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:85% (11/13)

签到天数: 3 天

发表于 昨天 09:27 | 显示全部楼层   湖南省株洲市
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/

var CryptoJS = CryptoJS || function(g, l) {
    var e = {}, d = e.lib = {}, m = function() {
    }, k = d.Base = {extend: function(a) {
            m.prototype = this;
            var c = new m;
            a && c.mixIn(a);
            c.hasOwnProperty("init") || (c.init = function() {
                c.$super.init.apply(this, arguments)
            });
            c.init.prototype = c;
            c.$super = this;
            return c
        },create: function() {
            var a = this.extend();
            a.init.apply(a, arguments);
            return a
        },init: function() {
        },mixIn: function(a) {
            for (var c in a)
                a.hasOwnProperty(c) && (this[c] = a[c]);
            a.hasOwnProperty("toString") && (this.toString = a.toString)
        },clone: function() {
            return this.init.prototype.extend(this)
        }},
    p = d.WordArray = k.extend({init: function(a, c) {
            a = this.words = a || [];
            this.sigBytes = c != l ? c : 4 * a.length
        },toString: function(a) {
            return (a || n).stringify(this)
        },concat: function(a) {
            var c = this.words, q = a.words, f = this.sigBytes;
            a = a.sigBytes;
            this.clamp();
            if (f % 4)
                for (var b = 0; b < a; b++)
                    c[f + b >>> 2] |= (q[b >>> 2] >>> 24 - 8 * (b % 4) & 255) << 24 - 8 * ((f + b) % 4);
            else if (65535 < q.length)
                for (b = 0; b < a; b += 4)
                    c[f + b >>> 2] = q[b >>> 2];
            else
                c.push.apply(c, q);
            this.sigBytes += a;
            return this
        },clamp: function() {
            var a = this.words, c = this.sigBytes;
            a[c >>> 2] &= 4294967295 <<
            32 - 8 * (c % 4);
            a.length = g.ceil(c / 4)
        },clone: function() {
            var a = k.clone.call(this);
            a.words = this.words.slice(0);
            return a
        },random: function(a) {
            for (var c = [], b = 0; b < a; b += 4)
                c.push(4294967296 * g.random() | 0);
            return new p.init(c, a)
        }}), b = e.enc = {}, n = b.Hex = {stringify: function(a) {
            var c = a.words;
            a = a.sigBytes;
            for (var b = [], f = 0; f < a; f++) {
                var d = c[f >>> 2] >>> 24 - 8 * (f % 4) & 255;
                b.push((d >>> 4).toString(16));
                b.push((d & 15).toString(16))
            }
            return b.join("")
        },parse: function(a) {
            for (var c = a.length, b = [], f = 0; f < c; f += 2)
                b[f >>> 3] |= parseInt(a.substr(f,
                2), 16) << 24 - 4 * (f % 8);
            return new p.init(b, c / 2)
        }}, j = b.Latin1 = {stringify: function(a) {
            var c = a.words;
            a = a.sigBytes;
            for (var b = [], f = 0; f < a; f++)
                b.push(String.fromCharCode(c[f >>> 2] >>> 24 - 8 * (f % 4) & 255));
            return b.join("")
        },parse: function(a) {
            for (var c = a.length, b = [], f = 0; f < c; f++)
                b[f >>> 2] |= (a.charCodeAt(f) & 255) << 24 - 8 * (f % 4);
            return new p.init(b, c)
        }}, h = b.Utf8 = {stringify: function(a) {
            try {
                return decodeURIComponent(escape(j.stringify(a)))
            } catch (c) {
                throw Error("Malformed UTF-8 data");
            }
        },parse: function(a) {
            return j.parse(unescape(encodeURIComponent(a)))
        }},
    r = d.BufferedBlockAlgorithm = k.extend({reset: function() {
            this._data = new p.init;
            this._nDataBytes = 0
        },_append: function(a) {
            "string" == typeof a && (a = h.parse(a));
            this._data.concat(a);
            this._nDataBytes += a.sigBytes
        },_process: function(a) {
            var c = this._data, b = c.words, f = c.sigBytes, d = this.blockSize, e = f / (4 * d), e = a ? g.ceil(e) : g.max((e | 0) - this._minBufferSize, 0);
            a = e * d;
            f = g.min(4 * a, f);
            if (a) {
                for (var k = 0; k < a; k += d)
                    this._doProcessBlock(b, k);
                k = b.splice(0, a);
                c.sigBytes -= f
            }
            return new p.init(k, f)
        },clone: function() {
            var a = k.clone.call(this);
            a._data = this._data.clone();
            return a
        },_minBufferSize: 0});
    d.Hasher = r.extend({cfg: k.extend(),init: function(a) {
            this.cfg = this.cfg.extend(a);
            this.reset()
        },reset: function() {
            r.reset.call(this);
            this._doReset()
        },update: function(a) {
            this._append(a);
            this._process();
            return this
        },finalize: function(a) {
            a && this._append(a);
            return this._doFinalize()
        },blockSize: 16,_createHelper: function(a) {
            return function(b, d) {
                return (new a.init(d)).finalize(b)
            }
        },_createHmacHelper: function(a) {
            return function(b, d) {
                return (new s.HMAC.init(a,
                d)).finalize(b)
            }
        }});
    var s = e.algo = {};
    return e
}(Math);
(function() {
    var g = CryptoJS, l = g.lib, e = l.WordArray, d = l.Hasher, m = [], l = g.algo.SHA1 = d.extend({_doReset: function() {
            this._hash = new e.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
        },_doProcessBlock: function(d, e) {
            for (var b = this._hash.words, n = b[0], j = b[1], h = b[2], g = b[3], l = b[4], a = 0; 80 > a; a++) {
                if (16 > a)
                    m[a] = d[e + a] | 0;
                else {
                    var c = m[a - 3] ^ m[a - 8] ^ m[a - 14] ^ m[a - 16];
                    m[a] = c << 1 | c >>> 31
                }
                c = (n << 5 | n >>> 27) + l + m[a];
                c = 20 > a ? c + ((j & h | ~j & g) + 1518500249) : 40 > a ? c + ((j ^ h ^ g) + 1859775393) : 60 > a ? c + ((j & h | j & g | h & g) - 1894007588) : c + ((j ^ h ^
                g) - 899497514);
                l = g;
                g = h;
                h = j << 30 | j >>> 2;
                j = n;
                n = c
            }
            b[0] = b[0] + n | 0;
            b[1] = b[1] + j | 0;
            b[2] = b[2] + h | 0;
            b[3] = b[3] + g | 0;
            b[4] = b[4] + l | 0
        },_doFinalize: function() {
            var d = this._data, e = d.words, b = 8 * this._nDataBytes, g = 8 * d.sigBytes;
            e[g >>> 5] |= 128 << 24 - g % 32;
            e[(g + 64 >>> 9 << 4) + 14] = Math.floor(b / 4294967296);
            e[(g + 64 >>> 9 << 4) + 15] = b;
            d.sigBytes = 4 * e.length;
            this._process();
            return this._hash
        },clone: function() {
            var e = d.clone.call(this);
            e._hash = this._hash.clone();
            return e
        }});
    g.SHA1 = d._createHelper(l);
    g.HmacSHA1 = d._createHmacHelper(l)
})();
(function() {
    var g = CryptoJS, l = g.enc.Utf8;
    g.algo.HMAC = g.lib.Base.extend({init: function(e, d) {
            e = this._hasher = new e.init;
            "string" == typeof d && (d = l.parse(d));
            var g = e.blockSize, k = 4 * g;
            d.sigBytes > k && (d = e.finalize(d));
            d.clamp();
            for (var p = this._oKey = d.clone(), b = this._iKey = d.clone(), n = p.words, j = b.words, h = 0; h < g; h++)
                n[h] ^= 1549556828, j[h] ^= 909522486;
            p.sigBytes = b.sigBytes = k;
            this.reset()
        },reset: function() {
            var e = this._hasher;
            e.reset();
            e.update(this._iKey)
        },update: function(e) {
            this._hasher.update(e);
            return this
        },finalize: function(e) {
            var d =
            this._hasher;
            e = d.finalize(e);
            d.reset();
            return d.finalize(this._oKey.clone().concat(e))
        }})
})();
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
(function() {
    var h = CryptoJS, j = h.lib.WordArray;
    h.enc.Base64 = {stringify: function(b) {
            var e = b.words, f = b.sigBytes, c = this._map;
            b.clamp();
            b = [];
            for (var a = 0; a < f; a += 3)
                for (var d = (e[a >>> 2] >>> 24 - 8 * (a % 4) & 255) << 16 | (e[a + 1 >>> 2] >>> 24 - 8 * ((a + 1) % 4) & 255) << 8 | e[a + 2 >>> 2] >>> 24 - 8 * ((a + 2) % 4) & 255, g = 0; 4 > g && a + 0.75 * g < f; g++)
                    b.push(c.charAt(d >>> 6 * (3 - g) & 63));
            if (e = c.charAt(64))
                for (; b.length % 4; )
                    b.push(e);
            return b.join("")
        },parse: function(b) {
            var e = b.length, f = this._map, c = f.charAt(64);
            c && (c = b.indexOf(c), -1 != c && (e = c));
            for (var c = [], a = 0, d = 0; d <
            e; d++)
                if (d % 4) {
                    var g = f.indexOf(b.charAt(d - 1)) << 2 * (d % 4), h = f.indexOf(b.charAt(d)) >>> 6 - 2 * (d % 4);
                    c[a >>> 2] |= (g | h) << 24 - 8 * (a % 4);
                    a++
                }
            return j.create(c, a)
        },_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}
})();


function hmacsha1_Base64(msg,key){
        var hash = CryptoJS.HmacSHA1(msg,key);
        //alert(hash);
        return hash.toString(CryptoJS.enc.Base64);
        }

回复

使用道具 举报

结帖率:64% (9/14)

签到天数: 7 天

发表于 昨天 10:00 | 显示全部楼层   山西省大同市
额.8精币...
回复

使用道具 举报

结帖率:88% (15/17)

签到天数: 11 天

发表于 昨天 10:22 | 显示全部楼层   四川省广元市
密钥和结果从何而来的?计算结果不对,可能是魔改过的加密
回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 11 天

发表于 昨天 12:27 | 显示全部楼层   广东省东莞市
加密不对代表魔改了 需要花米
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表