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

  • 相关阅读:
    grep使用多个查询条件--或
    Qt Quick App的两种启动模式
    ICP编程软件配置(烧写KEIL编译后的bin文件)
    C/C++语言中const的用法
    QT小插件类之QRoundProgressBar
    QT实现单个EXE文件
    QT小技巧学习记录
    无线路由器的五种工作模式
    Qt5.4静态编译方法
    Altium Designer极坐标布局方法
  • 原文地址:https://www.cnblogs.com/Jackson-Bruce/p/4011733.html
Copyright © 2011-2022 走看看