Tag: 密码学

BouncyCastle在C#threadsafe中的SecureRandom?

对于Java中的实现,答案显然是肯定的,但是C#中的Org.BouncyCastle.Security.SecureRandom怎么样?

如何与C#的英特尔新DRNG(RDRAND指令)连接?

我希望从C#程序集中使用英特尔的数字随机数生成器(Ivy Bridge中的RDRAND指令)。 我看过cpp libs,但我希望有一个更“管理”的解决方案。 有任何想法吗?

CngKeyBlobFormat支持的实际格式是什么?

Microsoft页面提供有关CngKey.Import可以使用的格式的“最小”信息。 以下CngKeyBlobFormat属性实际表示了哪些实际格式? EccPrivateBlob EccPublicBlob GenericPrivateBlob GenericPublicBlob OpaqueTransportBlob Pkcs8PrivateBlob 只有PKCS#8私钥格式略微提示密钥的格式,但它没有指定是否需要包装私钥或者是否接受内部PKCS#8结构。 当然,关于这些格式的信息越多越好。

C#中的PKCS5Padding

我需要使用DESede pkcs5填充来加密字符串。 但是C#只提供PKCS7填充。 那我该怎么做呢?

如何在Python中重现System.Security.Cryptography.SHA1Managed结果

这是交易:我正在将.NET网站迁移到Python。 我有一个使用System.Security.Cryptography.SHA1Managed实用程序密码哈希的数据库。 我正在使用以下代码在.NET中创建哈希: string hashedPassword = Cryptographer.CreateHash(“MYHasher”, userInfo.Password); MYHasher块看起来像这样: 因此,对于给定的密码,我回来并在数据库中存储一个48字节的盐渍sha1。 我假设最后8个字节是盐。 我试图通过执行sha1(salt +密码)和sha1(密码+ salt)来重现python中的散列过程,但我没有运气。 我向你提问: 如何使用公钥? 如何使用salt重新密码。 盐是如何产生的? (例如,当我说saltEnabled =“true”时,会发生什么额外的魔法?) 我需要不仅仅引用其他.NET库的具体细节,我正在寻找黑盒中发生的实际操作逻辑。 谢谢!

C#AES解密代码

我有AES算法的字符串加密/解密代码。 加密工作正常,但我解密后无法获得正确的纯文本。 解密代码中肯定有问题。 我复制了下面的代码。 请帮忙。 谢谢。 以下是加密和解密代码。 public static class EncryptionHelper { private static int BlockSize = 16; private static byte[] Key { get { byte[] hash = SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(“BlahBlahBlah”)); byte[] key = new byte[BlockSize]; Array.Copy(hash, 0, key, 0, BlockSize); return key; } } private static byte[] IV { get { StringBuilder builder = new StringBuilder(); […]

Beid:C#CryptoAcquireFailed错误= 80090019

我正在使用比利时身份证签署一些东西。 SDK中的示例sign_csp因此错误而失败: CryptoAcquireFailed. Error=80090019 CryptoAcquireFailed. Error=80090019 。 //Get a context if (!CryptAcquireContext(out hprov, container, provider, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) { MessageBox.Show(“CryptAcquireContext failed.\n\n(Error=” + Marshal.GetLastWin32Error().ToString(“x”) + “)”); return; } provider =“比利时身份证CSP” 我在Windows 7 64位上。 该程序是为x86构建的。 谢谢!

非对称加密和解密

我们假设我使用此站点上的算法使用公钥 – 私钥加密和解密数据: CodeProject上C#.NET中的公钥RSA加密 现在,让我们说有人使用我的公钥使用另一种算法加密他的数据并将其发送给我。 使用不同的算法(如网站上的算法),我能够使用我的私钥解密信息吗? 或者这是不可能的,因为算法不同? 我的观点是,假设使用的密钥是正确的,如果使用不同的加密算法,最终结果是否总是相同的? 是否有一些标准的方法来加密信息,使其可以在不同的机器上解密,也许是不同的编程语言?

使用BouncyCastle AesFastEngine加密C#AesCryptoServiceProvider加密数据

我需要使用标准C#AesCryptoServiceProvider解密数据,该数据在Java端使用Bouncy Castle AesFastEngine加密。 (使用Bounca Castle的c#实现解密数据没问题) 有没有办法做到这一点? 我没有找到在Bouncy Castle实施中使用的IV ……有没有? 任何帮助都会很好! 马库斯 编辑: 以下代码用于初始化AesFastEngine: BlockCipher coder = new AESFastEngine(); CFBBlockCipher cfbCipher = new CFBBlockCipher(coder, 8); StreamCipher streamCipher = new StreamBlockCipher(cfbCipher); streamCipher.Init(true, keyParameter); streamCipher.ProcessBytes(data, 0, data.Length, encodedMessageBytes, 0); 编辑: 您好Grec,感谢您的回答,但它仍然无效……我有一个示例解决方案可以在这里下载。 如果你单击两个按钮,你会得到一个不同的加密数组…… ??? 解密使用充气城堡生成的arrays导致一个例外,说加密数据的长度无效…… 这是我为解密编写的代码: AesManagedAlg = new AesManaged(); AesManagedAlg.Mode = CipherMode.CBC; AesManagedAlg.FeedbackSize = 8; AesManagedAlg.Key = key; […]

安全存储密码的最佳方法

在计算机上保存密码以便无法访问密码的最佳方法是什么? 我想将它们存储在加密的注册表中。 我希望您能够重置密码,但这不适用于服务器。 这是为了将它们存储在计算机上以便记住它们并自动登录。 重要编辑:我需要能够从程序中检索纯文本密码,而不是其他任何地方。