博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PassGuard密码控件配置
阅读量:5037 次
发布时间:2019-06-12

本文共 3010 字,大约阅读时间需要 10 分钟。

运行环境

  • win服务器 系统server2008R2
  • C# ASP.NET服务器页面

前端部分

     1.引用

//JS部分引用  //基于JQuery

  2.隐藏域

//隐藏域存储三部分 密码key, 随机因子, 网卡等设备信息

  3.初始化

//初始化密码控件  由JS初始化

  4.点击事件

var length = pgeditor.pwdLength();//获得密码长度                    if (length == 0 || length == undefined) {                        alert("密码不能为空");                        $("#OcxPassword").focus();                        return false;                    }                    if (pgeditor.pwdValid() == 1) {
//判断密码是否匹配正则表达式二 alert("密码不符合要求"); $("#OcxPassword").focus(); return false; } $.ajax({ url: "SrandNum.aspx", type: "GET", async: false, cache: false, success: function (srand_num) { pgeditor.pwdSetSk(srand_num);//给控件设置随机因子 } }); var pwdResult = pgeditor.pwdResult();//获取密码AES密文 var machineNetwork = pgeditor.machineNetwork();//获取网卡信息密文 var machineDisk = pgeditor.machineDisk();//获取硬盘信息密文 var machineCPU = pgeditor.machineCPU();//获取CPU信息密文 $("#<%=txtLoginPwd.ClientID %>").val(pwdResult);//将密码密文赋值给表单 $("#<%=hidMachineNetwork.ClientID %>").val(machineNetwork);//将网卡和MAC信息密文赋值给表单

  5.标签

后端部分

  首先需要引入文件: Interop.CPassguardLib.dll 

  注: Interop 引入面向托管代码,类似与静态类 不用在实际编程中引入命名空间,网站直接引用其dll可以直接使用

  

//首先在页面加载中 Page_Load 的时候加载 密码控件 赋值 哈希函数,赋值 随机因子        CPassguardLib.CPassguard Pgtest = new CPassguardLib.CPassguard();        hidSKey.Value = Pgtest.Get_RandHex();        hidEnStr.Value = Pgtest.Get_AesEncrypt(hidSKey.Value, hidSKey.Value);//获取用户输入密码时获取随机因子等信息 由dll解析 获得原始密码        string loginPwd = "";        string mac = "";        string mcryptKey = "";       try            {                mcryptKey = StringUtils.NotNullStr(Session["mcryptKey"]);  //随机因子                  Session.Remove("mcryptKey");                CPassguardLib.CPassguard Pgtest = new CPassguardLib.CPassguard();                loginPwd = Pgtest.Get_AesDecrypt(mcryptKey, password);//调用解密接口.获得密码明文。                mac = Pgtest.Get_AesDecrypt(mcryptKey, machineNetwork);//调用解密接口.获得密码明文。            }            catch (Exception ex)            {                log.Warn("warm:" + ex.Message + ",password【" + password + "】,machineNetwork【" + machineNetwork + "】,mcryptKey【" + mcryptKey + "】");                this.ShowClientAlert("登录异常");                return;            }

 特别注意:密码控件前端部分通过随机因子等参数参数传递参数加密,不仅如此前端提交时默认该方法为最终提交方式,也就是如果调用了密码控件的JS操作方法后再去执行其他函数提交可能会失败!~,但不一定是全部控件都会如此,谨以此例供大家参考.

转载于:https://www.cnblogs.com/workstation-liunianguowang/p/8481690.html

你可能感兴趣的文章
Linux服务之nginx服务篇三(反向代理、负载均衡)
查看>>
tcp协议四次握手
查看>>
割点-模板
查看>>
洛谷P2577 [ZJOI2005]午餐 打饭时间作为容量DP
查看>>
mac air上archlinux的安装及优化
查看>>
力扣——单值二叉树
查看>>
MyBatis 对数据库进行CRUD操作
查看>>
HttpRuntime.Cache被清空的DataTable
查看>>
IOS 应用官方接口地址
查看>>
机器学习(周志华西瓜书) 参考答案 总目录
查看>>
八:二叉搜索树的后序遍历
查看>>
android圆角View实现及不同版本号这间的兼容
查看>>
OA项目设计的能力③
查看>>
Cocos2d-x3.0 文件处理
查看>>
全面整理的C++面试题
查看>>
Web前端从入门到精通-9 css简介——盒模型1
查看>>
Activity和Fragment生命周期对比
查看>>
OAuth和OpenID的区别
查看>>
android 分辨率自适应
查看>>
查找 EXC_BAD_ACCESS 问题根源的方法
查看>>