- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是密码学新手。我读到对称和非对称算法分别使用一个和两个加密 key 。并且这些 key 必须存放在安全的地方。但是当我在网上搜索有关如何在 ASP.NET 中进行加密的教程时,我发现了一些奇怪的东西!例如this tutorial 。
加密或解密数据时没有存储或提供公钥或私钥!我不明白。
我遇到的另一个问题是,到目前为止我找到的所有教程都只是代码,没有任何关于这些代码是什么以及为什么使用的解释。我很感谢建议的任何好的教程。
最佳答案
来自RSACryptoServiceProvider Constructor :
If no default key is found, a new key is created.
This constructor creates an Exchange key pair suitable to encrypt session keys so that they can be safely stored and exchanged with other users. The generated key corresponds to a key generated using the AT_KEYEXCHANGE value used in the unmanaged Microsoft Cryptographic API (CAPI).
因此,如果找不到已经创建的 key 对,它只是生成一个新的 key 对;除了基于 session 的数据之外,您不应该使用它。
一点背景知识(我假设您使用 Windows),非对称 key 对与证书相关联。您可以使用这些证书来信任非对称 key 。每个证书都可以由证书颁发机构(颁发非对称 key 的机构)进行签名,如果您信任证书颁发机构,那么您就信任属于该机构签名的证书的非对称 key 。所有这些证书都存储在您的“证书存储”中,也称为“ key 存储”(Java)、“ key 环”(Mac)。
您可以通过执行开始 > 运行 > certmgr.msc
来查看您的证书。您的证书位于个人 > 证书下。如果您打开一个,然后转到“证书路径”选项卡,您将看到直至证书颁发机构的证书链。如果在您的受信任的根证书颁发机构 > 证书
存储中找到属于证书颁发机构的“根”证书,则该证书被视为有效且受信任。
如果您想为用户加密某些内容,您应该进入他的证书存储区,并提取他的加密证书。为此,您应该打开“当前用户” key 存储,并遍历其中的所有证书,并挑选出 key 用途为“ key 加密”的证书,如果有多个,则询问用户是哪一个他想使用。
如果您想使用服务帐户加密某些内容(例如,如果您是 Web 服务器),您应该使用“本地计算机” key 存储中找到的证书,并且仅授予您的服务帐户对关联私钥的读取权限与您要使用的证书。
这可以使用 X509Store Class 来完成,例如:
X509Store certificateStore = new X509Store("MY", StoreLocation.CurrentUser);
X509Certificate2Collection allCertificates = certificateStore.Certificates;
//Iterate through all certificates
“MY”代表个人证书,其余可查here 。 CurrentUser代表用户 key ,另一个选项是LocalMachine。
获得要使用的证书后,您应该结合对称 key 使用公钥进行加密,使用私钥进行解密。因此,如果您有大量想要加密的数据,您要做的是:
解密时你应该:
我有一堆代码示例可以完成此任务,如果您想看一下,请告诉我您需要哪一部分的帮助。
这可能有点令人困惑,所以请让我知道您想要澄清的内容。
关于asp.net - 加密 key 存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10851509/
查看“mysqldump -d”并看到一个键是 KEY,而不是“PRIMARY KEY”或“FOREIGN KEY” 什么是关键? 示例: CREATE TABLE IF NOT EXISTS `TA
在我开始使用 Python 的过程中尝试找出最佳编码实践。我用 Pandas 写了一个 csv 到数据框阅读器。它使用格式: dataframe = read_csv(csv_input, useco
在 Flutter 中,用一个例子可以清楚地解释什么? 我的困惑是关于 key,如下面的代码所示。 MyHomepage({Key key, this.title}) : super(key: key
我在我的 Android 应用程序中使用 GCM。要使用 GCM 服务,我们需要创建 Google API key 。因此,我为 android、服务器和浏览器 key 创建了 API key 。似乎
我想在 azure key 保管库中创建一个 secret ,该 key 将具有多个 key (例如 JSON)。 例如- { "storageAccountKey":"XXXXX", "Co
尝试通过带有 encodeforURL() 的 url 发送 key 时,我不断收到错误消息和 decodefromUrl() .代码示例如下。 这是我的入口页面: key = generateSec
是否有检查雪花变体字段中是否存在键的函数? 最佳答案 您可以使用 IS_NULL_VALUE 来查看 key 是否存在。如果键不存在,则结果将为 NULL。如果键存在,如果值为 JSON null,则
我正在尝试运行此命令: sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A 但我收到一个错误: Execu
我有一个 csv 文件,我正在尝试对 row[3] 进行计数,然后将其与 row[0] 连接 row[0] row[3] 'A01' 'a' 'B02'
如何编写具有这种形式的函数: A(key, B(key, C(key, ValFactory(key)))) 其中 A、B 和 C 具有此签名: TResult GetOrAdd(string key
审查 this method我很好奇为什么它使用 Object.keys(this).map(key => (this as any)[key])? 只调用 Object.keys(this).ind
我有一个奇怪的情况。我有一个字典,self.containing_dict。使用调试器,我看到了字典的内容,并且可以看到 self 是其中的一个键。但是看看这个: >>> self in self.c
我需要在我的 Google Apps 脚本中使用 RSA-SHA256 和公钥签署消息。 我正在尝试使用 Utilities.computeRsaSha256Signature(value, key)
我是 React 的初学者开发人员,几天前我看到了一些我不理解的有趣语法。 View组件上有{...{key}},我会写成 key={key} ,它完全一样吗?你有链接或解释吗? render()
代理 key 、合成 key 和人工 key 之间有什么区别吗? 我不清楚确切的区别。 最佳答案 代理键、合成键和人工键是同义词。技术关键是另一个。它们都表示“没有商业意义的主键”。它们不同于具有超出
问题陈述:在 Web/控制台 C# 应用程序中以编程方式检索并使用存储在 Azure Key Vault 中的敏感值(例如数据库连接字符串)。 据我所知,您可以在 AAD 中注册应用,并使用其客户端
问题陈述:在 Web/控制台 C# 应用程序中以编程方式检索并使用存储在 Azure Key Vault 中的敏感值(例如数据库连接字符串)。 据我所知,您可以在 AAD 中注册应用,并使用其客户端
我正在寻找 Perl 警告的解决方案 “引用键是实验性的” 我从这样的代码中得到这个: foreach my $f (keys($normal{$nuc}{$e})) {#x, y, and z 我在
我正在为 HSM 实现 JCE 提供程序 JCE中有没有机制指定 key 生成类型例如: session key 或永久 key KeyGenerator keygen = KeyGener
我在 Facebook 上创建了一个应用程序。我已经正确添加了 keyhash 并且应用程序运行良好但是当我今天来并尝试再次运行它时它给了我这个错误。 这已经是第二次了。 Previsouly 当我收
我是一名优秀的程序员,十分优秀!