Tag: rijndael

Asp.net身份哈希安全吗?

我在以下url中引用了以下网站,用于Rijndael和Asp.net哈希实现。 Rijndael – 如何使用密码生成Rijndael KEY和IV? Asp.net哈希 – ASP.NET身份默认密码哈希,它是如何工作的并且它是否安全? 在两个实现中,以下用于获取密码的随机字节。 Rijndael算法 Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, SALT); Asp.net身份哈希 Rfc2898DeriveBytes bytes = new Rfc2898DeriveBytes(providedPassword, salt, HasingIterationsCount) 在上面的代码之后,RijnDael对返回的字节应用加密。 但是asp.net标识将结果复制到salt字节数组并返回散列键。 在这里,我有一个混乱。 RijnDael和Asp.net身份哈希使用相同的Rfc2898DeriveBytes 。 当RijnDael可以解密加密的密钥(这是在Rfc2898DeriveBytes的帮助下完成的),为什么我们可以解密Asp.net Identity哈希密钥? 有可能这样做吗? Asp.net身份是否安全?

Rijndael填充错误

您好我正在尝试通过Rijaendal加密/解密字符串。 我根本无法弄清楚为什么解密会爆炸。 我总是以不正确的填充错误结束。 抛弃我的一件事是我的加密结果,我将其作为HEX数组返回。 它的长度为14个字节。 在我的解密函数中,相同的字节数组在从HEX转换时最终具有16个字节。 任何帮助,将不胜感激: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace rjandal { class Program { static void Main(string[] args) { string DataForEncrypting = “this is a test”; string key = string.Empty; string iv = string.Empty; using (System.Security.Cryptography.RijndaelManaged rmt = new System.Security.Cryptography.RijndaelManaged()) { rmt.KeySize = 256; rmt.BlockSize = 128; rmt.Mode […]

C#AES Rijndael – 检测无效密码

我正在使用Rijndael来加密程序中的一些敏感数据。 当用户输入错误的密码时,大多数情况下会抛出CryptographicException ,并显示消息“填充无效且无法删除”。 但是,如果概率非常小,CryptStream不会使用错误的密码抛出exception,而是会返回错误解密的流。 换句话说,它解密为垃圾。 知道如何检测/防止这种情况吗? 我能想到的最简单的方法是在加密时在消息的开头添加一个“幻数”,并在解密后检查它是否仍在那里。 但如果有一种更简单的方法,我很乐意听到它!

从Action Script到C#的Rijndael加密

我试图在Action Script和C#之间共享加密 我的任务是在C#中解密以下消息 f1ca22a365ba54c005c3eb599d84b19c354d26dcf475ab4be775b991ac97884791017b12471000def05bb77bfe9c3a97d44ef78c9449f12daf6e25b61ab1a281 它使用Rijndael encyption,ECB模式(电子代码簿),密钥:Pas5pr @ se,128位密钥大小和块大小。 我遇到的问题是我似乎无法做到,有人帮我这个吗?

如何存储用于加密文件的密钥

我正在玩一个应用程序将文件备份到“云”:)我想在存储之前加密文件。 我已经介绍过这部分,但是由于这个应用程序将监视文件夹以进行更改并上传更改的文件,我需要存储用于加密文件的密钥。 想法是用户提供密码并生成密钥。 目前我正在使用.NET Framework进行加密。 我正在使用RijndaelManaged类来加密/解密,而使用PasswordDeriveBytes类来获取密钥。 但是,我应该如何保留用于加密文件的密钥? 我也希望程序从Windows开始,而不需要让用户再次输入密码。

错误的PKCS7填充错误:无效长度106

我正在尝试使用以下函数进行加密和解密,但是,它会导致填充错误。 如果我将PaddingMode设置为None ,则会在Log中返回一些字母字符和随机符号。 我可能会错过设置正确结构的内容,如下所示: Cipher Rijndael(AES) 块大小128位(16字节) 模式CBC(密码块链接)密钥 MD5哈希密码 IV与密钥相同 数据编码Base64字符 UTF-8编码 任何帮助修复此错误以及确保满足上述结构的任何帮助将不胜感激! 谢谢 错误 CryptographicException: Bad PKCS7 padding. Invalid length 106. Mono.Security.Cryptography.SymmetricTransform.ThrowBadPaddingException (PaddingMode padding, Int32 length, Int32 position) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/Mono.Security.Cryptography/SymmetricTransform.cs:363) Mono.Security.Cryptography.SymmetricTransform.FinalDecrypt (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/Mono.Security.Cryptography/SymmetricTransform.cs:515) Mono.Security.Cryptography.SymmetricTransform.TransformFinalBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/Mono.Security.Cryptography/SymmetricTransform.cs:554) System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 […]

rijndael加密 – 只解密部分字符串

只有部分字符串被解密,我认为它与我的编码有关。 这是发生的事情: string s = “The brown fox jumped over the green frog”; string k = “urieurut”; string enc = EncryptString(s, k); string dec = DecryptString(enc, k); 结果是这样的:棕色的狐狸ϼ裴裴ㆉ≸frog frog frog frog frog frog frog frog frog public static string EncryptString(string stringToEncrypt, string encryptionKey) { string encrypted = String.Empty; UnicodeEncoding UE = new UnicodeEncoding(); byte[] key […]

Php解密来自C#.NET RIJNDAEL 256的字符串

固定它。 $data = base64_decode(str_replace(‘ ‘, ‘+’, $_GET[‘data’])); 无论出于何种原因,Php正在将GET变量中的+转换为空格 – 我试图解密在C#.NET中解密的字符串。 代码的结果各不相同,有几次最后的字符串解密了一些部分,其余部分是随机字符。 大多数时候“解密”字符串只是所有随机字符,我也尝试了一些Php函数来删除PKCS7填充,但没有一个修复了这个问题。 我在网站上看了几个类似的问题,但没有一个是有帮助的。 C# // called as Response.Redirect(url + encryptParams(param)); private string encryptData(string data) { Rijndael aes = Rijndael.Create(); aes.KeySize = 256; aes.BlockSize = 256; aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; aes.Key = Convert.FromBase64String(“b0dJN2c6cklVUX1qUGlFfGMweXRKbH5fSEMuXjAgfQo=”); ICryptoTransform crypto = aes.CreateEncryptor(aes.Key, aes.IV); byte[] txt = ASCIIEncoding.UTF8.GetBytes(data); byte[] cipherText […]

指定的初始化向量(IV)与此算法的块大小不匹配

我正在研究基本加密方法。 我正在使用RijndaelManaged。 我很久以前从某个地方得到了这段代码,但不记得在哪里。 之前我的代码工作正常,但是有些东西发生了变化,我无法理解它。 当我运行我的代码时,我收到以下错误; 指定的初始化向量(IV)与此算法的块大小不匹配。 这是我的代码: string textToEncrypt = “TEST STRING”; int keySize = 256; string hashAlgorithm = “SHA1”; string passPhrase = “AH!PSB0%FGHR$”; string saltValue = “LRT%YUR#VBNL@1”; string initVector = “HR$2pIjHR$2pIj”; byte[] initVectorBytes = Encoding.ASCII.GetBytes(initVector); byte[] saltValueBytes = Encoding.ASCII.GetBytes(saltValue); byte[] plainTextBytes = Encoding.UTF8.GetBytes(textToEncrypt); var password = new PasswordDeriveBytes(passPhrase, saltValueBytes, hashAlgorithm, 2); byte[] keyBytes = […]

用PHP重写Rijndael 256 C#加密代码

我有一个用C#编写的加密/解密算法 – 我需要能够在PHP中生成相同的加密,这样我就可以通过HTTP发送加密文本,在C#端解密。 这是加密的C#代码。 this.m_plainText = string.Empty; this.m_passPhrase = “passpharse”; this.m_saltValue = “saltvalue”; this.m_hashAlgorithm = “SHA1”; this.m_passwordIterations = 2; this.m_initVector = “1a2b3c4d5e6f7g8h”; this.m_keySize = 256; public string Encrypt() { string plainText = this.m_plainText; string passPhrase = this.m_passPhrase; string saltValue = this.m_saltValue; string hashAlgorithm = this.m_hashAlgorithm; int passwordIterations = this.m_passwordIterations; string initVector = this.m_initVector; int keySize […]