JS中的加密解密操作,以及对应的C#中的加密解密

JS:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>RSA Login Test</title>
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script src="Scripts/jQuery.md5.js" type="text/javascript" ></script>
    <script src="Scripts/BigInt.js" type="text/javascript"></script>
    <script src="Scripts/RSA.js" type="text/javascript"></script>
    <script src="Scripts/Barrett.js" type="text/javascript"></script>
    <script type="text/javascript">
        function cmdEncrypt() {
            setMaxDigits(129);
            var key = new RSAKeyPair("<%=strPublicKeyExponent%>", "", "<%=strPublicKeyModulus%>");
            var pwdMD5Twice = $.md5($.md5($("#txtPassword").attr("value")));
            var pwdRtn = encryptedString(key, pwdMD5Twice);
            $("#encrypted_pwd").attr("value", pwdRtn);
            $("#formLogin").submit();
            return;
        }
    </script>

</head>
<body>
    <form action="Default.aspx" id="formLogin" method="post">
    <div>
        <div>
            User Name:
        </div>
        <div>
            <input id="txtUserName" name="txtUserName" value="<%=postbackUserName%>" type="text" maxlength="16" />
        </div>
        <div>
            Password:
        </div>
        <div>
            <input id="txtPassword" type="password" maxlength="16" />
        </div>
        <div>
            <input id="btnLogin" type="button" value="Login" onclick="return cmdEncrypt()" />
        </div>
    </div>
    <div>
        <input type="hidden" name="encrypted_pwd" id="encrypted_pwd" />
    </div>
    </form>
    <div>
        <%=LoginResult%>
    </div>
</body>
</html>

C#:

static void Main(string[] args)
{
    //用于字符串和byte[]之间的互转
    UTF8Encoding utf8encoder = new UTF8Encoding();

    //产生一对公钥私钥
    RSACryptoServiceProvider rsaKeyGenerator = new RSACryptoServiceProvider(1024);
    string publickey = rsaKeyGenerator.ToXmlString(false);
    string privatekey = rsaKeyGenerator.ToXmlString(true);

    //使用公钥加密密码
    RSACryptoServiceProvider rsaToEncrypt = new RSACryptoServiceProvider();
    rsaToEncrypt.FromXmlString(publickey);
    string strPassword = "@123#abc$";
    Console.WriteLine("The original password is: {0}", strPassword);
    byte[] byEncrypted = rsaToEncrypt.Encrypt(utf8encoder.GetBytes(strPassword), false);
    Console.Write("Encoded bytes: ");
    foreach (Byte b in byEncrypted)
    {
        Console.Write("{0}", b.ToString("X"));
    }
    Console.Write("\n");
    Console.WriteLine("The encrypted code length is: {0}", byEncrypted.Length);

    //解密
    RSACryptoServiceProvider rsaToDecrypt = new RSACryptoServiceProvider();
    rsaToDecrypt.FromXmlString(privatekey);
    byte[] byDecrypted = rsaToDecrypt.Decrypt(byEncrypted, false);
    string strDecryptedPwd = utf8encoder.GetString(byDecrypted);
    Console.WriteLine("Decrypted Password is: {0}", strDecryptedPwd);
}

JS中的加密解密操作,以及对应的C#中的加密解密

时间: 2024-10-13 21:17:33

JS中的加密解密操作,以及对应的C#中的加密解密的相关文章

利用PBFunc在Powerbuilder中进行国密SM4的加密解密操作

利用PBFunc的n_pbfunc_cryp对象可以很方便的进行SM4的加密解密操作,其中ECB不需要向量IV,其它模式需要IV 代码下载地址:https://download.csdn.net/download/my_aa/12309197 SM4加密: 1 //可用 http://aks.jd.com/tools/sec/ 对比结果 2 string ls_data 3 ls_data = sle_1.Text//要加密的数据 4 string ls_key 5 ls_key = sle_k

KRPano资源分析工具使用说明(KRPano XML/JS解密 切片图批量下载 球面图还原 加密混淆JS还原美化)

软件交流群:571171251(软件在群内提供) krpano技术交流群:551278936(软件在群内提供) 软件功能介绍 KRPano资源分析工具具有以下特性: 1.分析保存网站资源,包括查看网站资源树形(平铺)结构,单个资源文件实时打开,整站资源批量保存,资源过滤筛选保存等功能 2.一键解密被KRPano加密的XML文件 3.一键解密被KRPano加密后的JS文件 4.解密/美化被加密或混淆的JS文件 5.KRPano网站切片图批量下载 6.KRPano切片图一键还原球面图 7.批量下载多

[转]js中confirm实现执行操作前弹出确认框的方法

原文地址:http://www.jb51.net/article/56986.htm 本文实例讲述了js中confirm实现执行操作前弹出确认框的方法.分享给大家供大家参考.具体实现方法如下: 现在在删除或其它操作前弹出确定提示,我们有很多方法,最基本的就是利用js自带的函数confirm来操作了 最简单的用法如下: 鼠标事件使用confirm 复制代码 代码如下: <a href="#" onclick= "if(confirm( '是否确定! ')==false)r

JS中字符串的相关操作

(转自:http://www.cnblogs.com/zhaoxinxin/articles/1402733.html) 一.字符串的创建 创建一个字符串有几种方法. 最简单的是用引号将一组字符包含起来,可以将其赋值给一个字符串变量. var myStr = "Hello, String!"; 可以用双引号或单引号将字符串包含,但要注意,作为界定字符串的一对引号必须是相同的,不能混用. 像var myString = "Fluffy is a pretty cat.'; 这样

DES对称加解密、AES RijndaelManaged加解密、Base64加密解密、MD5加密等操作辅助类 EncodeHelper

/// <summary> /// 使用默认加密 /// </summary> /// <param name="strText"></param> /// <returns></returns> public static string DesEncrypt(string strText) /// <summary> /// 使用默认解密 /// </summary> /// <pa

js基础之js中的HTML属性操作与注意事项

一.js中的HTML属性操作HTML属性操作:读和写: 属性读操作:作用:获取.找到: 语法:元素.属性名 属性写操作:作用:替换.修改: 语法:元素.属性名 = 新的值--->就替换了. innerHTML:读取元素内的所有HTML内容: 语法:元素.innerHTML://读取HTML内容 语法:元素.innerHTML = 新值://修改HTML内 容 /*属性读写操作注意事项*/1.JS中不允许出现“-”例:oDiv.style.fontSize将font-size 中的“-”去掉,si

js中对数组的操作-------Day49

今天碰到了一个问题:easyui的使用中,datagrid表格的高度如何改变(设定成一个固定的高度),看了半天文档,也从网上查了些,还楞是没弄出来,有点小郁闷,这easyui在某些情况情况下确实好用了,可要随意调整实在是有些麻烦啊. 做不出就先放放,回家了就换个心情. 昨天在回放拖拽轨迹的实现中,对数组的应用成了关键的一步,于是特意查看了一些javascript对数组的操作,这里来记录下: "增删改查"这四个字相信都不陌生,我们绝大多数的工作都是在进行这些操作,而这些操作却有一个大前提

js中数组Array的操作

JS中数组有很多操作,作为前端多多少少知道点,但每次要用时都需要去百度,有点麻烦,所以在这儿做个备忘,简单总结些平时最常用的数组操作. shift:删除原数组第一项,并返回删除元素的值: var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 注:如果数组为空则返回undefined unshift:将参数添加到原数组开头,并返回数组的长度 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); /

常用密码加密解密操作相关类

/// <summary> /// 密码加密解密操作相关类 /// </summary> public static class EncryptHelper { #region MD5 加密 /// <summary> /// MD5加密 /// </summary> public static string Md532(this string source) { if (string.IsNullOrEmpty(source)) return null;