摘要

我们很难想象用户在什么样的网络环境使用我们开发的应用,如果用户所处的网络环境不是一个可信任的环境,那么用户的账户安全就可能有威胁,比如用户登陆时提交的账号密码被网络嗅探器窃取;客户端加密数据能有效的防御网络嗅探器窃取数据,通过在客户端Javascript加密数据后再提交至服务端进行验证有效提高了系统的安全系数,这符合纵深防御原则和数据安全要素机密性;本文整理了两种常用的加密算法:md5和sha1;

HashEncrypt加密对象

加密算法封装HashEncrypt对象中,包含MD5、SHA1两个方法和HashFormat属性,此外还扩展了系统的String类型,为其实例添加了md5和sha1方法;

属性

HashFormat:输出格式枚举,是object类型,静态结构:{ Base64: "Base64", Hex: "Hex", String: "String" }

方法

MD5方法

HashEncrypt.MD5(string,ascii,hexUpperCase )

string   类型:string ,要需要加密的内容,必须的

ascii 类型:bool,可选的,是否以ASCII字符编码加密,默认是Unicode

hexUpperCase   类型:bool,可选的,输出的十六进制编码是否为大写

HashEncrypt.MD5(string,base64Pad,ascii )

string   类型:string ,要需要加密的内容

ascii 类型:bool,是否以ASCII字符编码加密,默认是Unicode

base64Pad   类型:string,输出base64的填充字符默认是"=",如果设置这个参数为字符串那么输出格式默认是base64编码。

HashEncrypt.MD5(string,hexUpperCase)

string   类型:string ,要需要加密的内容

hexUpperCase   类型:number,1表示输出的十六进制编码为大写;

HashEncrypt.MD5(string,options)

string   类型:string ,要需要加密的内容

options   类型:object,加密的参数选项;

options属性说明:

ascii 类型:bool,是否以ASCII字符编码加密,默认是Unicode

base64 类型:string,输出base64的填充字符默认是"=",如果设置这个参数为字符串那么输出格式默认是base64编码。

hexUpperCase 类型:bool,输出的十六进制编码是否为大写

format 类型:HashEncrypt.HashFormat枚举类型,表示密文的输出格式,可选值有:

"Base64" base64编码格式 、 "Hex"十六进制编码格式、 "String"直接转换字符串格式;

hmacKey 类型:string,可选的,使用 MD5 哈希函数计算基于哈希值的消息验证代码 (HMAC),

此 HMAC 进程将密钥与消息数据混合,使用哈希函数对混合结果进行哈希计算,将所得哈希值与该密钥混合,然后再次应用哈希函数。输出的哈希值长度为 128 位。

示例:

 <script>
var data = HashEncrypt.MD5("hello world!",false,false);
//"hello world!".md5(false,false) //这行代码上面的效果是同样的结果
document.write(data);
</script>

输出结果:99da75326ffaf6acc0debe844b359894

SHA1方法

这个方法的签名和MD5方法的完全一致的,在这里就不重述了,哈哈哈。。

代码下载:

源码和方法演示

http://files.cnblogs.com/Jackson-Bruce/%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%93%88%E5%B8%8C%E5%8A%A0%E5%AF%86.zip

发布版

http://files.cnblogs.com/Jackson-Bruce/HashEncrypt.min.js

相关资料:

http://pajhome.org.uk/crypt/md5

客户端哈希加密(Javascript哈希加密,附源码)的更多相关文章

  1. JavaScript动画附源码(一)

        JavaScript完成动画程序 1,效果图: 以上是纯CSS+JavaScript实现的.点击关闭按钮可以动态关闭这个方框.兼容IE/FF/Chrome.这样的效果如果用jquery实现起来 ...

  2. 聊天系统Demo,增加Silverlight客户端(附源码)-- ESFramework 4.0 快速上手(09)

    在ESFramework 4.0 快速上手 -- 入门Demo,一个简单的IM系统(附源码)一文中,我们介绍了使用ESFramework的Rapid引擎开发的winform聊天程序,本文我们将在之前d ...

  3. 在网站开发中很有用的8个 jQuery 效果【附源码】

    jQuery 作为最优秀 JavaScript 库之一,改变了很多人编写 JavaScript 的方式.它简化了 HTML 文档遍历,事件处理,动画和 Ajax 交互,而且有成千上万的成熟 jQuer ...

  4. ASP.NET程序读取二代身份证(附源码)

    原文:ASP.NET程序读取二代身份证(附源码) 一般来说winform应用程序解决这个问题起来时很容易的,web应用程序就麻烦一点了. 这里我说说我的解决思路: 一.你必要有联机型居民身份证阅读器一 ...

  5. C#进阶系列——一步一步封装自己的HtmlHelper组件:BootstrapHelper(三:附源码)

    前言:之前的两篇封装了一些基础的表单组件,这篇继续来封装几个基于bootstrap的其他组件.和上篇不同的是,这篇的有几个组件需要某些js文件的支持. 本文原创地址:http://www.cnblog ...

  6. 轻量级通信引擎StriveEngine —— C/S通信demo(2) —— 使用二进制协议 (附源码)

    在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息.二进制消息. 文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束. 二进制协议,通常是由消息头(Head ...

  7. 精选9个值得学习的 HTML5 效果【附源码】

    这里精选了一组很酷的 HTML5 效果.HTML5 是现 Web 开发领域的热点, 拥有很多让人期待已久的新特性,特别是在移动端,Web 开发人员可以借助 HTML5 强大功能轻松制作各种交互性强.效 ...

  8. (原创)通用查询实现方案(可用于DDD)[附源码] -- 简介

    [声明] 写作不易,转载请注明出处(http://www.cnblogs.com/wiseant/p/3985353.html).   [系列文章] 通用查询实现方案(可用于DDD)[附源码] -- ...

  9. 精选12个时尚的 CSS3 效果【附源码下载】

    这里是精选的12个很炫的 CSS3 效果.CSS3 是对 CSS 规范的一个很大的改善和增强,它使得 Web 开发人员可以很容易的在网站中加入时尚的效果.以前很多需要编写复杂的 JavaScript ...

  10. 让你心动的 HTML5 & CSS3 效果【附源码下载】

    这里集合的这组 HTML5 & CSS3 效果,有的是网站开发中常用的.实用的功能,有的是先进的 Web 技术的应用演示.不管哪一种,这些案例中的技术都值得我们去探究和学习. 超炫的 HTML ...

随机推荐

  1. 使用 python 管理 mysql 开发工具箱 - 2

    这篇博文接着上篇文章<使用 python 管理 mysql 开发工具箱 - 1>,继续写下自己学习 python 管理 MySQL 中的知识记录. 一.MySQL 的读写分离 学习完 My ...

  2. kafka describe 显示结果解释

    > bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic Topic:my- ...

  3. 【Linux 命令】- more和less

    more命令 more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b ...

  4. PHP中对象的传值方式

    对象的传值方式: 为什么对于对象,值传递和引用传递,这个情况下,他们似乎没有区别??? 这要从对象的数据的存储方式来理解: $o1 = new C1(); //这里创建一个对象o1,其存储结果如图所示 ...

  5. nest

    d3.nest d3.nest表示一种嵌套结构.之所以成为嵌套是因为可以指定多个key访问器,这些访问器是一层一层嵌套的. 作用 将数组中的元素对象,按照key方法指定的属性,分组为层次结构.与SQL ...

  6. Android手机Fiddler真机抓包

    Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许用户监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统 ...

  7. js控制iframe高度自动撑开

    <iframe src="index.html" width="100%" name="" id="myiframe&quo ...

  8. 【明哥报错簿】之json转换报错---net.sf.ezmorph.bean.MorphDynaBean cannot be cast to XXXDO

    简单的json和bean转换直接用: public static void main(String[] args) { String s = "{'request': [{'orderCod ...

  9. 题解 P5015 【标题统计】

    既然这个题这么水 大家不如来盘点一下算法呗 首先说一个事:逗号表达式 这玩意的值是最后一个表达式的值 那么我们就可以愉快的放进循环条件里摩擦 话说这个应该是基础吧,大多数代码都可以这样干 具体可以后面 ...

  10. QoS专题-第1期-QoS理论篇

    QoS理论篇 1      QoS的产生 随着网络技术的飞速发展,IP网络已经从当初的单一数据网络向集成数据.语音.视频.游戏的多业务网络转变.网络中所承载的数据呈几何级倍数增长,而且这些业务对网络带 ...