111,120
社区成员
发帖
与我相关
我的任务
分享
),本来asp里是用的JavaScript类库,浏览器里面执行加密解密消耗时间忽略不计,到asp里却要4秒多钟。没办法,然后想过用php的rsa加密,搜了一下感觉太复杂,还要安装各种各样的东西。。昨天搜了一下发现.net framework里面的很多组件asp里面其实是可以直接用的,然后就想出了用c#开发组件然后给asp用,今天就把这个功能给实现了。
客户端给服务器发数据是没问题了,还想请教一下,服务器端数据如何安全的发送到客户端呢?


只是以前java、JavaScript都实现了双向加密解密,做一个c#组件出来支持的不全感觉有点可惜
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
namespace AspCSharp
{
class RSA:Help
{
public string Help()
{
return "";
}
private RSACryptoServiceProvider rsa;
public RSA()
{
CspParameters RSAParams = new CspParameters();
RSAParams.Flags = CspProviderFlags.UseMachineKeyStore;
rsa = new RSACryptoServiceProvider(1024, RSAParams);
}
public void setKey(string key)
{
rsa.FromXmlString(key);
}
public string getKey()
{
return rsa.ToXmlString(true);
}
public string enByPublic(string str) {
return Convert.ToBase64String(rsa.Encrypt(Encoding.UTF8.GetBytes(str), false));
}
public string enByPrivate() {
throw new NotSupportedException();
}
public string deByPublic()
{
throw new NotSupportedException();
}
public string deByPrivate(string str)
{
return Encoding.UTF8.GetString(rsa.Decrypt(Convert.FromBase64String(str), false));
}
}
}