Tag: 加密

ASP.NET加密 – aspnet_regiis – Farm

我们的网站使用“NT Authority \ Network Service”。 Response.Write(WindowsIdentity.GetCurrent().Name); 我们目前使用以下命令加密配置文件。 aspnet_regiis -pc “NetFrameworkConfigurationKey” aspnet_regiis -pa “NetFrameworkConfigurationKey” “NT Authority\Network Service” aspnet_regiis.exe -pef “connectionStrings” “C:\WebAppLocation\Folder” 注意:我们没有使用“-exp”。 当我们使用“-exp”时,它不会创建RSA密钥容器。 如您所见,我们使用默认密钥-NetFrameworkConfigurationKey。 我们的网站有一个负载均衡器。 Webserver1(W1)和WebServer2(W2)可用。 如果我按照上面提到的命令,我们将在W1和W2上使用单独的键。 然而,该网站使用这种方法。 这种方法是否足够? 是否有任何缺点或安全漏洞? 它会在任何情况下失败吗? 注意:我们的web.config中添加了机器密钥。 两个配置都是一样的。 但是,我们的configProtectedData不在Web.Config中。 另外,我认为,NetFrameworkConfigurationKey在两个服务器中都会有所不同。 我已经在Web场景方案中阅读了以下用于加密的msdn aricle。 http://msdn.microsoft.com/en-us/library/ff650304.aspx

C#从文本文件中的公钥获取CngKey对象

我有一个文件,其中有几个ECDSA SHA256的公钥。 该文件看起来像: KEY_ID: 1 STATUS: VALID —–BEGIN PUBLIC KEY—– MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaq6djyzkpHdX7kt8DsSt6IuSoXjp WVlLfnZPoLaGKc/2BSfYQuFIO2hfgueQINJN3ZdujYXfUJ7Who+XkcJqHQ== —–END PUBLIC KEY—– KEY_ID: 2 STATUS: VALID —–BEGIN PUBLIC KEY—– MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+Y5mYZL/EEY9zGji+hrgGkeoyccK D0/oBoSDALHc9+LXHKsxXiEV7/h6d6+fKRDb6Wtx5cMzXT9HyY+TjPeuTg== —–END PUBLIC KEY—– KEY_ID: 3 STATUS: VALID —–BEGIN PUBLIC KEY—– MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkvgJ6sc2MM0AAFUJbVOD/i34YJJ8 ineqTN+DMjpI5q7fQNPEv9y2z/ecPl8qPus8flS4iLOOxdwGoF1mU9lwfA== —–END PUBLIC KEY—– 如何为这些键中的一个(或全部)获取CngKey对象(或CngKey列表)? 我尝试过类似的东西 string plainTextKey = “MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaq6djyzkpHdX7kt8DsSt6IuSoXjpWVlLfnZPoLaGKc/2BSfYQuFIO2hfgueQINJN3ZdujYXfUJ7Who+XkcJqHQ==”; byte[] publicKeyBytes = Convert.FromBase64String(plainTextKey); CngKey ret = CngKey.Import(publicKeyBytes, CngKeyBlobFormat.EccPublicBlob); 但导入方法会因无效参数而抛出System.Security.Cryptography.CryptographicException。

错误RijndaelManaged,“填充无效,无法删除”

我有来自CryptoStream错误: 填充无效,无法删除。 码 public MemoryStream EncrypteBytes(Stream inputStream, string passPhrase, string saltValue) { RijndaelManaged RijndaelCipher = new RijndaelManaged(); RijndaelCipher.Padding = PaddingMode.PKCS7; RijndaelCipher.Mode = CipherMode.CBC; byte[] salt = Encoding.ASCII.GetBytes(saltValue); PasswordDeriveBytes password = new PasswordDeriveBytes(passPhrase, salt, “SHA1”, 2); ICryptoTransform Encryptor = RijndaelCipher.CreateEncryptor(password.GetBytes(32), password.GetBytes(16)); MemoryStream memoryStream = new MemoryStream(); CryptoStream cryptoStream = new CryptoStream(memoryStream, Encryptor, CryptoStreamMode.Write); var buffer = […]

三重加密在PHP和C#中没有产生相同的结果

当我用C#加密时,我得到arTdPqWOg6VppOqUD6mGITjb24+x5vJjfAufNQ4DN7rVEtpDmhFnMeJGg4n5y1BN static void Main(string[] args) { Encoding byteEncoder = Encoding.Default; String key = “ShHhd8a08JhJiho98ayslcjh”; String message = “Let us meet at 9 o’clock at the secret place.”; String encryption = Encrypt(message, key, false); String decryption = Decrypt(encryption , key, false); Console.WriteLine(“Message: {0}”, message); Console.WriteLine(“Encryption: {0}”, encryption); Console.WriteLine(“Decryption: {0}”, decryption); } public static string Encrypt(string toEncrypt, […]

在C#中解密PKCS#7加密数据

我正在研究一种需要解密PKCS#7加密数据的解决方案,最好是在C#中。 据我所知,.NET api通过System.Security.Cryptography.Pkcs命名空间支持这一点。 但是,似乎实现只能在字节数组上工作。 那么当我有一个不适合内存的大型加密文件时,我该怎么办? 我在这里遗漏了什么,或者是否有另一种方法在Stream级别上执行此操作而不是使用bytearrays?

使用先前生成的带有.net框架的RSA公钥/私钥

我有一个预先存在的RSA加密公钥/私钥对,我需要在.net中使用。 我在网上找到的所有例子都演示了如何生成新的私有/公共对,然后加密/解密。 即。 像这样的东西: const int PROVIDER_RSA_FULL = 1; const string CONTAINER_NAME = “SpiderContainer”; 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); ….. rsa.encrypt(…) rsa.decrypt(…) 可以看出,没有用于指定预先存在的公钥/私钥的途径。 谁会知道如何完成我想要做的事情? 任何帮助将非常感激。 干杯纳伦

解压缩使用PHP openssl_encrypt加密的C#中的字符串

我有一个客户使用以下代码在PHP中加密字符串: $password = ‘Ty63rs4aVqcnh2vUqRJTbNT26caRZJ’; $method = ‘AES-256-CBC’; texteACrypter = ‘Whether you think you can, or you think you can\’t–you\’re right. – Henry Ford’; $encrypted = openssl_encrypt($texteACrypter, $method, $password); 导致此加密输出: MzVWX4tH4yZWc/w75zUagUMEsP34ywSYISsIIS9fj0W3Q/lR0hBrHmdvMOt106PlKhN/1zXFBPbyKmI6nWC5BN54GuGFSjkxfuansJkfoi0= 当我尝试在C#中解密该字符串时,它给了我一堆像这样的垃圾: Z o }’*2 I4y J6S xz {9^ ED fF } گs ) Q i $) 我已经尝试使用AesManaged而不是RijndaelManaged更改填充,更改密钥大小,使用不同的密钥等。所有这些都会导致不同的垃圾字符串或各种exception。 我必须遗漏一些非常基本的东西,但我不确定此时还有什么可以尝试的。 这是我的解密代码(我从另一个stackoverflow问题无耻地复制: openssl只使用.NET类 ) class Program { //https://stackoverflow.com/questions/5452422/openssl-using-only-net-classes […]

GUID是(临时)加密的好钥匙吗?

我正在生成一个加密密钥,用Rijndael(AES)加密算法加密一些敏感数据。 我正在使用guid作为密钥生成器。 这些钥匙“足够”吗? 注意:它只对20分钟敏感。

如何解密AES-256-CBC加密字符串

我是C#的新手,我真的需要帮助。 我需要在C#中使用AES-256-CBC加密/解密字符串,我发现这是为了加密字符串: public static string EncryptString(string message, string KeyString, string IVString) { byte[] Key = ASCIIEncoding.UTF8.GetBytes(KeyString); byte[] IV = ASCIIEncoding.UTF8.GetBytes(IVString); string encrypted = null; RijndaelManaged rj = new RijndaelManaged(); rj.Key = Key; rj.IV = IV; rj.Mode = CipherMode.CBC; try { MemoryStream ms = new MemoryStream(); using (CryptoStream cs = new CryptoStream(ms, rj.CreateEncryptor(Key, IV), CryptoStreamMode.Write)) { […]

寻找c#等效的php的密码 – validation()

我需要将一堆用户帐户Moodle导入到用c#编写的系统中。 Moodle使用password_hash()函数创建密码哈希值。 我需要能够在c#中validation这些密码。 换句话说,我正在寻找PHP的密码validationfunction的ac#实现( http://www.php.net/manual/en/function.password-verify.php )。 我用谷歌搜索了一下但是真的找不到任何东西,所以我要求避免重新发明轮子:-) 谢谢!