客户端哈希加密(Javascript哈希加密,附源码)
2018-06-18 03:09:44来源:未知 阅读 ()
摘要
我们很难想象用户在什么样的网络环境使用我们开发的应用,如果用户所处的网络环境不是一个可信任的环境,那么用户的账户安全就可能有威胁,比如用户登陆时提交的账号密码被网络嗅探器窃取;客户端加密数据能有效的防御网络嗅探器窃取数据,通过在客户端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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 关于各种不同开发语言之间数据加密方法(DES,RSA等)的互通的 2020-06-07
- ftp客户端封装 2020-05-10
- QT程序自启动 2019-12-03
- 个人项目开源之c++基于epoll实现高并发游戏盒子(服务端+客 2019-11-28
- Unary模式下客户端创建 default-executor 和 resolver-execu 2019-10-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash