客户端哈希加密(Javascript哈希加密,附源码)

摘要

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

 

HashEncrypt加密对象

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

属性

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

方法

MD5方法函数

HashEncrypt.MD5(string,ascii,hexUpperCase )编码

 

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

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

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

 

HashEncrypt.MD5(string,base64Pad,ascii )orm

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

相关文章
相关标签/搜索