RSA加密前端JS加密,后端asp.net解密,报异常

摘要:
uidStr | | uidStr。长度==0){returnfalse;}varkeyE=“”;varkeyM=“”;setMaxDigits;varkey=newRSAKeyPair;varpwdRtn=加密字符串;varuidRtn=加密字符串;$。val;$。val;}后台解密代码:请尝试{RSACryptoServiceProvidersa=Cache.Get;byte[]result=rsa.Decrypt;password=Encoding.UTF8.GetString;result=rsa.Decrypt,userName=Encoding/UTF8.GetString;}捕获{ShowMessage(“身份验证失败!”,“您的登录帐户或密码不正确!”,""); return;}发现在某些研发环境中会报告“参数错误”异常。但是,这在其他项目或服务器环境中是正常的。原因未找到,原理未知!!

RSA加密前端JS加密,后端asp.net解密,报异常

参考引用:http://www.ohdave.com/rsa/的JS加密库

前端JS加密代码:

function GetChangeStr() 
{ debugger; var pwdStr = document.getElementById("txtPassWordStr").value; var uidStr= $("#<%=txtUserStr.ClientID%>").val(); if (!pwdStr || pwdStr.length == 0 || !uidStr || uidStr.length==0) { return false; } var keyE = "<%=PubRsaKeyE%>"; var keyM = "<%=PubRsaKeyM%>"; setMaxDigits(131); var key = new RSAKeyPair(keyE, "", keyM); var pwdRtn = encryptedString(key, pwdStr); var uidRtn = encryptedString(key, uidStr); $("#<%=txtPassword.ClientID%>").val(pwdRtn); $("#<%=txtUser.ClientID%>").val(uidRtn); }

后台解密代码:

        try
        {
            RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)Cache.Get("privateKey");
            byte[] result = rsa.Decrypt(HexStringToBytes(password), false);
            password = Encoding.UTF8.GetString(result);

            result = rsa.Decrypt(HexStringToBytes(userName), false);
            userName = Encoding.UTF8.GetString(result);
        }
        catch (Exception ex)
        {
            ShowMessage("身份验证失败!", "您登陆的帐号或密码错误!","");
            return;
        }    

发现在某些研发环境时会报“参数错误”异常。但在其它项目或服务器环境是正常的。

RSA加密前端JS加密,后端asp.net解密,报异常第1张

没有找到原因,不明原理啊!!

仅此做个记录。

免责声明:文章转载自《RSA加密前端JS加密,后端asp.net解密,报异常》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转]Oracle 树操作(select…start with…connect by…prior)mysql命令行导出导入数据库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

01 Vue基础

1. vue 概述# Vue:渐进式JavaScript框架 vue官网 https://cn.vuejs.org/v2/guide/ 声明式渲染→组件系统→客户端路由→集中式状态管理→项目构建 易用:熟悉HTML、CSS、JavaScript知识后,可快速上手Vue 灵活:在一个库和一套完整框架之间自如伸缩 高效:20kB运行大小,超快虚拟DOM 2...

前端跨域

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源。也就是说如果协议,域名,或者端口有一个不同就是跨域。 那么为什么要用跨域? 其实是因为浏览器出于安全考虑,我们都知道浏览器有同源策略。如果没有同源策略的情况下,A网站可以被任意来源的Ajax访问到内容,如果当前A网站还处于登录态,那么对方就可以通过Ajax获得A网站的任何消息。当然跨域可以用来房子CS...

JS 将UTC时间转为本地时间

在企业实际开发中,有时数据库会存UTC时间,要求不同地区的人访问可以智能识别国家,显示当地时间,下面用的是moment.js转化时间。 下载地址:https://momentjs.com/ js 转化: //初始化日期(utc->local) function dateFormatter(value) { var date = moment.pars...

js遍历table中的数据,并组装成json

1 functionfore(){ 2 var temp = ""; 3 var tabLen = document.getElementById("tableID"); 4 var jsonT = "{pieTes:["; 5 for(var i = 0; i < tabLen.row...

开发时javascript 文件调试 chrome 浏览器本地缓存处理

chrome 浏览器 javascript 文件缓存处理 调试一体项目时,js文件需要经常刷新,通过强制刷新全页面重新加载是非常恶心的,我们测试填写的很多数据都需要重新填一遍,当然我们可以写个函数快速填充数据,但是还是不够通用。 尽管我们在新的标签页面请求js,发现js文件已经刷新了。但是当前页面使用的js还是没变...... 解决方案 在开发者模式下停用...

html2canvas如何在元素隐藏的情况下生成截图

html2canvas官网地址:http://html2canvas.hertzen.com/ github地址:https://github.com/niklasvh/html2canvas/ 从官网可以看出它的使用方法很容易: 项目中的需求是需要将2张图片(1背景图+2生成的二维码)和1段文字(3店铺的名称)整体合成一张图片,看下面的图片应该有助于理...