Tag: encryption

SQLite多进程访问

我们在多进程和multithreading应用程序中使用SQLite。 SQLite数据库文件使用嵌入式SQLite加密进行加密。 FAQ说明SQLite应该能够使用锁机制管理多进程访问。 我们遇到了一个奇怪的问题:当许multithreading访问同一个数据库文件时,有时会发生约束违规,更具体地说 – 具有唯一约束的字段在调用“insert或replace”语句后获得重复值。 它现在经常发生,我们正在使用加密。 在我们开始使用SQLite加密之前,我们没有注意到这种行为。 这有什么具体的已知问题吗?

使用OpenSSL.NET和现有密钥解密RSA

我在下面的代码中使用OpenSSL.Net生成OpenSSL RSA公钥和私钥。 但是,我似乎找不到使用给定私钥解密数据的方法。 我知道如果我调用生成密钥然后相应的方法加密和解密数据它工作正常。 但是,如果我尝试从给定公钥的外部源解密某些内容,我该如何使用该密钥进行解密。 注意:请不要给出不使用OpenSSL.NET的示例。 Microsoft加密提供程序比OpenSSL慢得多,并且不符合我的速度要求。 谢谢! public class AsymmetricKeyResult { public string PublicKey { get; set; } public string PrivateKey { get; set; } public AsymmetricKeyResult(string publicKey, string privateKey) { this.PublicKey = publicKey; this.PrivateKey = privateKey; } } public static AsymmetricKeyResult GenerateAsymmetricKeys(int keyLength) { RSA rsa = new RSA(); rsa.GenerateKeys(keyLength, 0x10021, null, null); […]

AES加密器无法正常工作

我试图让这个AES示例代码正常工作。 但是我没有得到任何返回我的cipherText变量的内容。 我没有得到错误,只是没有回复。 我在这做错了什么? public byte[] key { get; set; } public byte[] IV { get; set; } public byte[] ciphertext { get; set; } public string plainText { get; set; } public byte[] Encrypt(string InputPlaintext) { InputPlaintext = “attack at dawn”; using (AesCryptoServiceProvider AESEncryptor = new AesCryptoServiceProvider()) { ////using the AesCryptoServiceProvider to generate the […]

如何使用WindowsMediaPlayer播放加密video文件?

我将.mp4加密为自定义格式( .opu )。 现在我应该解密我的文件并在我的应用程序开始时将它们保存到临时文件夹中。 并使用C#中的WindowsMediaPlayer控件播放它们。 所以我有冒险从临时文件夹中窃取文件的风险。 防止窃取我的文件的最佳方法是什么? 如何使用WindowsMediaPlayer播放加密video文件?

加密的zip文件是否也可以保护其内部目录

我正在使用WinZip AES 256使用DotNetZip创建一个加密的zip文件。但是我能够读取目录甚至删除一些没有加密密钥的zipentries。 据我所知,目录可见性是Zip格式的限制。 我只是想知道,如果这也适用于删除/添加组件到zip文件的任何更改,或者是否存在防止此类更改的方法。 编辑: 快速阅读Zip文件格式似乎表明,双重压缩似乎是防止随机删除/添加zip文件中的 comoponents的唯一解决方案,无论单个条目的加密。

UWP RSA AsymmetricKeyAlgorithmProvider导入公钥

当我尝试在UWP中使用Windows.Security.Cryptography.Core时,我总是从AsymmetricKeyAlgorithmProvider导入公钥时出错。 我尝试了所有组合而没有成功。 我总是检查输入字符串是否为UTF8模式。 try { var bytes = Encoding.UTF8.GetBytes(publicKeyString); publicKeyString = Encoding.UTF8.GetString(bytes); Debug.WriteLine(publicKeyString); IBuffer keyBuffer = CryptographicBuffer.DecodeFromBase64String(publicKeyString); byte[] bytes = Convert.FromBase64String(publicKeyString); string hex = “”; Debug.WriteLine(hex); AsymmetricKeyAlgorithmProvider provider = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1); CryptographicKey publicKey = provider.ImportPublicKey(CryptographicBuffer.DecodeFromHexString(hex), CryptographicPublicKeyBlobType.BCryptPublicKey); IBuffer dataBuffer = CryptographicBuffer.CreateFromByteArray(Encoding.UTF8.GetBytes(plainText)); var encryptedData = CryptographicEngine.Encrypt(publicKey, dataBuffer, null); return CryptographicBuffer.EncodeToBase64String(encryptedData); } catch (Exception e) { throw; return “Error […]

如何在C#中使用私钥? “找不到请求的对象。”

我正在尝试为MasterCard Match实施身份validation,作为以下文档的一部分,他们有一个示例私钥: https://developer.mastercard.com/portal/display/api/OAuth+Validation 在该页面上,它们有两个版本的密钥,一个是base64编码的文本,在页面上可见,还有一个可下载的.p12文件。 如何导入此密钥以用作x509certificate2? 无论我尝试什么,我都会收到消息“无法找到所请求的对象。”。 我试着用.net源码挖掘它,但是我在导入的对象上得到了死胡同 [SecurityCritical] [MethodImpl(MethodImplOptions.InternalCall)] internal static extern uint _QueryCertFileType(string fileName); 我已经尝试了以下内容,并且所有这些都失败了相同的上述消息 new X509Certificate2(@”c:\test\mc-openapi-csr.pem”) new X509Certificate2(@”c:\test\mc-openapi-csr.pem”, “mcapi”) new X509Certificate2(@”c:\test\mc-openapi-csr.pem”, “mckp”) 所以我将文本块复制到“copied.txt”,并尝试使用该文件,我也尝试读取字节,并手动传递,我也尝试过使用 X509Certificate.CreateFromCertFile(fileName) 两个文件。 有任何想法吗? 证书不好吗? 我使用错误的课吗? 该错误消息的含义是什么? – 更新 – 在Bad Zombie的建议下,我尝试了BouncyCastle: var pem = new Org.BouncyCastle.OpenSsl.PemReader(File.OpenText(fileName)); RsaPrivateCrtKeyParameters rsaParameters = (RsaPrivateCrtKeyParameters)pem.ReadObject(); using (var rsa = new RSACryptoServiceProvider()) { rsa.ImportParameters(new RSAParameters { […]

无法解密RSA加密密钥

长话短说,我正在使用DES而我正在使用RSA加密密码进行密钥交换,密码不超过16个字符问题是当我加密密钥时,加密的大小对我来说太大了解密这里是我的rsa加密和解密代码: 加密: – 我一直在尝试将localpwd作为“asd” byte[] plaintext = utf8.GetBytes(localpwd); byte[] ciphertext = rsaservice.Encrypt(plaintext, false); string cipherresult = Convert.ToBase64String(ciphertext); 然后我打印文本框上的加密密钥并尝试解密 byte[] ciphertext = utf8.GetBytes(filetest.Text); byte[] plain = rsaservice.Decrypt(ciphertext, true); string plaintext = utf8.GetString(plain); 我得到“要解密的数据超过这个256字节模数的最大值”。 我尝试增加密钥大小,以便能够加密和解密更大的密钥大小,但增加密钥只会增加加密数据的大小导致相同的错误,请帮助!

从字符串创建X509Certificate2时“无法找到请求的对象”exception

我正在尝试从字符串创建X509Certificate2 。 让我举个例子: string keyBase64String = Convert.ToBase64String(file.PKCS7); var cert = new X509Certificate2(Convert.FromBase64String(keyBase64String)); 和keyBase64String有这样的内容: “MIIF0QYJKoZI ……..hvcNAQcCoIIFwjCCBb4CA0=” 和file.PKCS7是我从数据库下载的字节数组 。 创建X509Certificate2时,我遇到以下exception: 找不到请求的对象 并且堆栈跟踪: “无法在系统中的System.Security.Cryptography.X509Certificates.X509Utils._QueryCertBlobType(Byte [] rawData)的System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32hr)中找到请求的对象”X509Certificate2exception“无法找到请求的对象”}。 WebApp.SoupController.d__7.MoveNext()上的System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte [] rawData)中的Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte [] rawData,Object password,X509KeyStorageFlags keyStorageFlags)在D:\ Projects \ WebApp \ Controllers \ SoupController.cs中:第118行 请告诉我我做错了什么。 任何帮助将不胜感激!

使用C#中的RSA私钥文件创建RSACryptoServiceProvider对象

如何使用RSA私钥文件正确创建RSACryptoServiceProvider对象? 我生成了一个RSA私钥,并使用以下方法将其导出到OSX上的p12文件: openssl genrsa -out rsakey.pem 2048 openssl pkcs12 -export -out rsakey.p12 -inkey rsakey.pem -nocerts 在我在Windows笔记本电脑上运行的C#代码中,我在尝试实例化X509Certificate2对象时遇到错误,以便我可以将私钥作为RSACryptoServiceProvider对象从中获取: var privateKey = new X509Certificate2(p12_file, “pass”, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet).PrivateKey as RSACryptoServiceProvider; CryptographicException:参数不正确。 以下是整个C#代码供参考。 请注意,我只是尝试通过遵循X509Certificate2类的文档来获取私钥作为RSACryptoServiceProvider对象。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Net; using System.Security; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Globalization; using Jose; using […]