相关疑难解决方法(0)

如何通过RSA生成唯一的公钥和私钥

我正在构建一个自定义购物车,其中CC号和Exp日期将存储在数据库中,直到处理(然后删除).我需要加密这些数据(显然).

我想使用RSACryptoServiceProvider类.

这是我创建密钥的代码.

public static void AssignNewKey(){
    const int PROVIDER_RSA_FULL = 1;
    const string CONTAINER_NAME = "KeyContainer";
    CspParameters cspParams;
    cspParams = new CspParameters(PROVIDER_RSA_FULL);
    cspParams.KeyContainerName = CONTAINER_NAME;
    cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
    cspParams.ProviderName = "Microsoft Strong Cryptographic Provider";
    rsa = new RSACryptoServiceProvider(cspParams);

    string publicPrivateKeyXML = rsa.ToXmlString(true);
    string publicOnlyKeyXML = rsa.ToXmlString(false);
    // do stuff with keys...
}
Run Code Online (Sandbox Code Playgroud)

现在计划将私钥xml存储在连接到管理器密钥链的USB驱动器上.

每当经理离开公司时,我希望能够生成新的公钥和私钥(并使用新的公钥重新加密所有当前存储的CC号).

我的问题是这段代码生成的密钥总是一样的.我每次如何生成一组独特的密钥?

UPDATE.我的测试代码如下:
注意:这里的"privatekey"参数是原始私钥.为了更改密钥,我需要验证私钥是否有效.

在Default.aspx.cs中

public void DownloadNewPrivateKey_Click(object sender, EventArgs e)
{
    StreamReader reader = new StreamReader(fileUpload.FileContent);
    string privateKey = reader.ReadToEnd();
    Response.Clear();
    Response.ContentType = "text/xml"; …
Run Code Online (Sandbox Code Playgroud)

c# encryption cryptography rsa key

64
推荐指数
3
解决办法
11万
查看次数

标签 统计

c# ×1

cryptography ×1

encryption ×1

key ×1

rsa ×1