c# - 何时使用非对称 key 与数字证书

标签 c# encryption cryptography

我们有一个要求,我们需要能够加密/解密查询字符串,如下所示:

http://oursite.com/login?uname= encryptedUName&fname=encryptedFname&lname=encryptedLname.

它的工作方式是我们公司向第三方供应商提供记录的 CSV。然后第三方供应商生成上述 url 并通过电子邮件营销发送给客户。

所以,我在想

  1. 加密 CSV 文件中的记录
  2. 第三方供应商仅解析加密文本并生成电子邮件。
  3. 当用户点击链接时,用户会来到我们的网站。
  4. 然后我们解密并预填充表单字段。

文件内容可能如下所示:

*login?uname=encryptedUName&fname=encryptedFname&lname=encryptedLname

login?uname=encryptedUName&fname=encryptedFname&lname=encryptedLname.*

问题:

  1. 我应该使用 X509 证书来加密和解密吗?
  2. 或者,我应该使用 RSA 吗?
  3. 如何确定是 X509 还是 RSA?

谢谢。

最佳答案

数字证书在公钥和私钥对(非对称加密)之上工作。证书添加的是信任。您可以使用证书颁发机构签署证书并创建信任链。

在你的情况下,你似乎不需要证书,因为你自己管理加密/解密,你的供应商知道你,不需要第三方来验证你是谁。

但是,如果对您的供应商来说更简单,您可以使用自签名证书作为 key 容器。

关于c# - 何时使用非对称 key 与数字证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188931/

相关文章:

c# - C# 上的 Windows Phone ANID 到 ANID2 转换?

c# - 将多个参数传递给 BeginInvoke()

java - 如何在android中安全地存储加密 key ?

ruby - 意外的 keyword_end,预期的输入结束

encryption - 是否有支持小块大小的良好分组密码?

c# - 如何使用C#连接Mysql?

c# - 如何根据menustrip项目单击Windows应用程序更改按钮的css

java - JAVA加密一个整数只得到数字字符

java - GCMParameterSpec 抛出 InvalidAlgorithmParameterException : unknown parameter type

c++ - 在键上使用 gpg --list-packets 的输出来获取 mpi 值以生成 s 表达式