zoukankan      html  css  js  c++  java
  • 客户端哈希加密(Javascript哈希加密,附源码)

    摘要

    我们很难想象用户在什么样的网络环境使用我们开发的应用,如果用户所处的网络环境不是一个可信任的环境,那么用户的账户安全就可能有威胁,比如用户登陆时提交的账号密码被网络嗅探器窃取;客户端加密数据能有效的防御网络嗅探器窃取数据,通过在客户端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方法的完全一致的,在这里就不重述了,哈哈哈。。

     

    代码下载:

    源码和方法演示

    https://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

    发布版

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

     

    相关资料:

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

  • 相关阅读:
    Qt计算器开发(三):执行效果及项目总结
    [HNOI2019]校园旅行
    How to fix nuget Unrecognized license type MIT when pack
    How to fix nuget Unrecognized license type MIT when pack
    git 通过 SublimeMerge 处理冲突
    git 通过 SublimeMerge 处理冲突
    git 上传当前分支
    git 上传当前分支
    gif 格式
    gif 格式
  • 原文地址:https://www.cnblogs.com/Jackson-Bruce/p/4011733.html
Copyright © 2011-2022 走看看