在ASP.Net中实现RSA加密

      在我们实际运用中,加密是保证数据安全的重要手段。以前使用ASP时,对数据加密可以使用MD5和SHA1算法,这两种算法虽然快捷有效,但是无法对通过它们加密的密文进行反运算,即是解密。因此需要解密数据的场合,这两种方法就不太适合了。当然你也可以自己编写适用的加密和解密程序,不过这对编写者的数学水平有很高的要求,一般人是很难做到的。

       现在,随着ASP.Net的推出,彻底改变了以前ASP下的编程模式。我们能够利用.Net Framework中的类提供的加密服务来保证数据安全。目前应用较为广泛的加密方法是使用RSA算法进行加密。在.Net Framework中与RSA加密算法相关的类主要有两个:RSA 类和RSACryptoServiceProvider 类。按照MSDN的说法RSA 类是“表示 RSA 算法的所有实现均从中继承的基类”,而RSACryptoServiceProvider 类是“使用加密服务提供程序 (CSP) 提供的 RSA 算法的实现执行不对称加密和解密”。另外,“表示 RSA 算法的标准参数”的RSAParameters 结构也是很重要的,它保存了RSA算法的参数。

      由于介绍RSA算法原理的文章或书籍比较多,大家可以参阅一下,在此就不复述了。下面着重介绍一下如何在ASP.Net中实现RSA加密。

      RSA参数的产生:RSA参数的类型就是上面提到的RSAParameters 结构,查阅MSDN可知其包含了D、DP、DQ、Exponent、InverseQ、Modulus、P、Q八个字段。加密时仅需要Exponent和Modulus两个值,可看成公钥。解密时所有字段都需要,可看成私钥。下面这段程序显示了如何产生RSA两个参数:

以下为引用的内容: RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); RSAParameters rsaParamsExcludePrivate=rsa.ExportParameters(false); RSAParameters rsaParamsIncludePrivate=rsa.ExportParameters(true);

 

      RSACryptoServiceProvider类的ExportParameters(bool)方法用于导出RSA参数,true表示导出上述八个字段的“私钥”,false表示导出“公钥”。

使用RSA参数进行加密解密:这一步需要把上面两个参数导入到RSACryptoServiceProvider类对象中,再用它对数据进行加密。如下面的代码所示,我们可以写一个函数来完成加密过程:

以下为引用的内容: Public byte [ ] RSAEncrypt ( byte [ ] b) { RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa.ImportParameters(rsaParamsExcludePrivate); //导入公钥 byte [] EncryptedData=rsa.Encrypt(DataToEncrypt,false); return EncryptedData; }

 

      解密时只要把rsa.ImportParameters(rsaParamsExcludePrivate)换成rsa.ImportParameters(rsaParamsExcludePrivate),再把Encrypt换成Decrypt就行了。

      保存和加载RSA参数:RSA参数可以保存为XML格式,下面代码说明了如何保存和加载(只列出了关键部分)

      保存:

以下为引用的内容: RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); StreamWriter writer=new StreamWriter(@"d:\PublicAndPrivateKey.xml"); string PPKeyXml=rsa.ToXmlString(true);//保存私钥 writer.Write(PPKeyXml); writer.Close(); writer=new StreamWriter(@"d:\PublicKey.xml"); string PKeyXml=rsa.ToXmlString(false);//保存公钥 writer.Write(PKeyXml); writer.Close();

 

       读取:

以下为引用的内容: RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); StreamReader reader=new StreamReader(@"d:\PublicKey.xml"); string PKey=reader.ReadToEnd(); rsa.FromXmlString(PKey); reader.Close(); StreamReader reader=new StreamReader(@"d:\PublicAndPrivateKey.xml"); string PPKey=reader.ReadToEnd(); reader.Close();

 

       ToXmlString和ExportParameters方法类似,false表示保存“公钥”,true表示保存“私钥”。

转载于:https://www.cnblogs.com/cksis/archive/2012/04/09/2439073.html

系统逻辑人工神经网络专家系统等人工智能技术应用于 神经网络的是我的毕业论文的一部分。4.人工神经网络人的思维有逻辑性和直观性两种不同的基本方式。逻辑性的思维是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理。这一过程可以写成串行的指令,让计算机执行。然而,直观性的思维是将分布式存储的信息综合起来,结果是忽然间产生想法或解决问题的办法。这种思维方式的根本之点在于以下两点:1.信息是通过神经元上的兴奋模式分布在网络上;2.信息处理是通过神经元之间同时相互作用的动态过程来完成的。人工神经网络就是模拟人思维的 阅读详情

相关推荐

图神经网络基础知识——初识图学习

初识图学习一、简单的图基础什么是图?生活中的图图的分类同构图、异构图举例图的度和邻居图的表示邻接矩阵邻接表边集图的特征二、图学习初印象图学习的应用节点级别任务金融诈骗检测自动驾驶边级别任务推荐系统图级别任务气味识别图学习算法分类图游走类算法图神经网络算法三、PGL 图学习库初体验1. 环境安装2. 使用 PGL 来创建一张图3. 定义图模型4. 模型定义5. 训练前准备6. 开始训练7. 模型测试 一、简单的图基础 在上一篇文章中,我整理了数据结构与算法中的图,讲解了与图有关的基本概念。 这里再做一个小小的

zbp_12138的博客 6723

一文看懂25个神经网络模型

1. 引言在深度学习十分火热的今天,不时会涌现出各种新型的人工神经网络,想要实时了解这些新型神经网络的架构还真是不容易。光是知道各式各样的神经网络模型缩写(如:DCIGN、BiLSTM、DCGAN……还有哪些?),就已经让人招架不住了。因此,这里整理出一份清单来梳理所有这些架构。其中大部分是人工神经网络,也有一些完全不同的怪物。尽管所有这些架构都各不相同、功能独特,当我在画它们的节点图时……其中潜在

刘炫320的博客 25万+

神经网络原理&一个简单的神经网络模型搭建

神经网络基本原理 文章目录神经网络基本原理前言一、神经网络是什么?1.1 神经网络的分类1.2 神经网络结构图1.3 神经元1.4 为什么神经网络能预测?二、 一个最简单的神经网络1.去不去爬山?2.案例代码2.1 引入类库2.2 创建数据2.3 初始假设2.4 神经元计算2.5 运行结果2.6 小结3.神经网络的自我学习总结 前言 神经网络是一门重要的机器学习技术,它是目前最为火热的研究方向–深度学习的基础。本文以一个生活中的小场景切入问题,详细的介绍了人工神经网络的本质基本原理。 一、神经网络是什

N2O_666的博客 9522

常见的神经网络模型

在同一层的神经元之间是相互独立的,而在不同的网络层之间的神经元是相互连接的(双向连接)。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。)是⼀种简单的神经⽹络,也被称为多层感知机(multi-layer perceptron,简称MLP),其中不同的神经元属于不同的层,由输⼊层-隐藏层-输出层构成,信号从输⼊层往输出层单向传递,中间无反馈,其目的是为了拟合某个函数,由⼀个。

hellozhxy的博客 7592

如何画神经网络结构图,如何搭建神经网络模型

(4)S形函数(SigmoidFunction)该函数的导函数:(5)双极S形函数该函数的导函数:S形函数与双极S形函数的图像如下:图3.S形函数与双极S形函数图像双极S形函数与S形函数主要区别在于函数的值域,双极S形函数值域是(-1,1),而S形函数值域是(0,1)。则神经元i的输出与输入的关系表示为:图中yi表示神经元i的输出,函数f称为激活函数(ActivationFunction)或转移函数(TransferFunction),net称为净激活(netactivation)。

shirley67269的博客 2966

人工神经网络基本原理

本文主要对神经元的基本工作单元(人工神经元模型)进行概述,以及神经网络的构成和基本工作原理进行介绍。以及激活函数的定义和一些常用的激活函数的特征。

机器学习笔记 1万+

bp神经网络模型结构图,bp神经网络拓扑结构图

BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成;正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差作为调整信号逐层反向回传,对神经元之间的连接权矩阵做出处理,使误差减小。经反复学习,最终使误差减小到可接受的范围。具体步骤如下:1、从训练集中取出某一样本,把信息输入网络中。2、通过各节点间的连接情况正向逐层处理后,得到神经网络的实际输出。3、计算网络实际输出与期望输出的误差。

m0_54846070的博客 6458

神经网络基本原理

下面是一个包含三个层次的神经网络。红色的是输入层,绿色的是输出层,紫色的是中间层(也叫隐藏层)。输入层有3个输入单元,隐藏层有4个单元,输出层有2个单元。设计一个神经网络时,输入层与输出层的节点数往往是固定的,中间层则可以自由指定;神经网络结构图中的拓扑与箭头代表着推理过程时数据的流向,跟训练时的数据流有一定的区别;结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值 tensor),这是需要训练得到的。

哦豁灬 1万+

bp神经网络的拓扑结构,bp神经网络模型结构图

BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成;正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差作为调整信号逐层反向回传,对神经元之间的连接权矩阵做出处理,使误差减小。经反复学习,最终使误差减小到可接受的范围。具体步骤如下:1、从训练集中取出某一样本,把信息输入网络中。2、通过各节点间的连接情况正向逐层处理后,得到神经网络的实际输出。3、计算网络实际输出与期望输出的误差。...

shirley67269的博客 2313

bp神经网络模型拓扑结构,bp神经网络模型结构图

BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成;正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差作为调整信号逐层反向回传,对神经元之间的连接权矩阵做出处理,使误差减小。经反复学习,最终使误差减小到可接受的范围。具体步骤如下:1、从训练集中取出某一样本,把信息输入网络中。2、通过各节点间的连接情况正向逐层处理后,得到神经网络的实际输出。3、计算网络实际输出与期望输出的误差。

Supermen333的博客 822

图解神经网络基本原理,神经网络基本结构说明

人类的神经网络2.神经网络基础知识构成:大量简单的基础元件——神经元相互连接工作原理:模拟生物的神经处理信息的方式功能:进行信息的并行处理和非线性转化特点:比较轻松地实现非线性映射过程,具有大规模的计算能力神经网络的本质:神经网络的本质就是利用计算机语言模拟人类大脑做决定的过程。具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。通常最为理想的神经网络只具有一个隐含层,输入的信号能够被隐含节点分离,然后组合成新的向量,其运算快速,可让复杂的事物简单化,减少不必要的麻烦。...

aifamao2的博客 1819

从零开始:神经网络(1)——什么是人工神经网络

众所周知,人类大脑是人体最复杂的器官,由神经元、神经胶质细胞、神经干细胞和血管组成。神经元(Neuron),也叫神经细胞(Nerve Cell),是携带和传输信息的细胞,是人脑神经系统中最基本的单元。神经元结构如下图所示:图1 神经元结构图神经元结构组成部分介绍:(1)是神经元的中心部分,含有细胞的染色体,能够迅速评估同时接收到的数百上千条信息。其中有些信息可能是兴奋性的(“放电”),有些是抑制性的(“不要放电”),胞体的唤起程度取决于所有传入信息的汇总。胞体相当于一个信息处理器。

qiaoxinyu1989的博客 9048

神经网络模型基本原理,神经网络模型图怎么画

6)计算W[S1][S0],b[S1];9))输出W1[S1][S0],b1[S1]。2.应用弹性BP算法(RPROP)学习三层BP网络(含输入层,隐含层,输出层)权值W、偏差b总体算法函数:Train3BP_RPROP(S0,X,P,S1,W1,b1,f1,S2,W2,b2,f2,d,TP)(1)输入参数P对模式(xp,dp),p=1,2,…三、总体算法1.三层BP网络(含输入层,隐含层,输出层)权值W、偏差b初始化总体算法(1)输入参数X[N][P],S0,S1,f1[S1],S2,f2[S2];...

Supermen333的博客 992

语言模型(三)—— 循环神经网络语言模型(RNNLM)与语言模型评价指标

RNNLM,循环神经网络的基本结构与训练过程、优缺点;语言模型的评价指标说明。

竹杖芒鞋轻胜马 6577

神经网络基本原理(自用版)

pytorch中的对应实现:torch.nn.ReLU(input,inplace) 如果inplace为False,则不改变原数据。2)隐藏层的节点数决定了模型的拟合能力,节点越多,拟合能力越强,泛化能力越差。一般用在分类问题上,预测输入样本属于某一类的概率,值越小表示预测结果越准。隐藏层的数量决定模型的泛化能力,层数越多,泛化能力越强,拟合能力越差。作用:判断输入属于某一类的概率大于属于其他类的概率,要求分类值互斥。其中,x表示输入矩阵,w表示权重矩阵,b表示偏置,y表示输出。

qwertyksndj的博客 709

图神经网络的实现,神经网络框架图

经过激活函数f(u)的作用得到隐含层1的输出信息:岩溶地区地下水与环境的特殊性研究经过激活函数f(u)的作用得到隐含层2的输出信息:岩溶地区地下水与环境的特殊性研究激活函数f(u)我们这里采用Sigmoid型,即f(u)=1/[1+exp(-u)](6.5)隐含层的输出信息传到输出层,可得到最终输出结果为岩溶地区地下水与环境的特殊性研究以上过程为网络学习的信息正向传播过程。第二步:将已知的样本加到网络上,利用下式可算出他们的输出值yi,其值为岩溶地区地下水与环境的特殊性研究式中:xi为该节点的输入;...

Supermen333的博客 2598
上一篇: JAVA程序的加密和反加密
下一篇: ASP程序加密/解密方法大揭密
aotingjian0975
博客等级 码龄10年 2粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值