Asp.net 如何解密ASPXAuth,什么是IV?

Asp.net 如何解密ASPXAuth,什么是IV?,asp.net,session,cookies,encryption,.aspxauth,Asp.net,Session,Cookies,Encryption,.aspxauth,有人知道什么密钥和IV用于加密/解密ASPXAUTH cookie吗? 我想我已经找到了关键部分 经过广泛的阅读和研究(以及这里发布的其他问题),我看到ASPXAUTH使用了FormsAuthentication.Encrypt和Decrypt方法。它们反过来使用您在web/machine.config文件的machineKey部分中定义的任何算法和键 作为参考,我阅读了以下文章: http://www.codeproject.com/Articles/16822/The-Anatomy-of-

有人知道什么密钥和IV用于加密/解密ASPXAUTH cookie吗? 我想我已经找到了关键部分

经过广泛的阅读和研究(以及这里发布的其他问题),我看到ASPXAUTH使用了FormsAuthentication.Encrypt和Decrypt方法。它们反过来使用您在web/machine.config文件的machineKey部分中定义的任何算法和键

作为参考,我阅读了以下文章: http://www.codeproject.com/Articles/16822/The-Anatomy-of-Forms-Authentication

如果我使用以下machineKey(来自在服务器场中部署的msdn示例):


根据后面的链接,ASPXAUTH将使用AES(在托管代码中实现为RijndaelManaged)和上述设置

我想尝试使用标准的RijndaelManaged函数进行解密,但输入需要密钥和IV

我假设我可以使用decryptionKey作为密钥,如果我将它从十六进制转换为字节数组,这很简单


但是,我使用什么作为IV的输入?我在任何地方都找不到此信息或设置。

我不知道答案,但很多时候,IV或是预先挂起消息(IV始终是一个块),或是使用一个0'd out块作为IV。您可以尝试这两个选项,看看是否得到有意义的输出。简单地尝试用零IV解密,如果只有第一个块不正确,其余的是正确的消息,那么这就是今天早上尝试的IV;这似乎不起作用。希望其他人知道IV是从哪里创建的。您确定AES并不意味着AES/ECB吗?在这种情况下,将不会有一个IV。不完全确定,但上面的第二个链接声明:使用AES加密(在托管代码中实现为RijndaelManaged)我想我发现了一些东西,所以为了澄清更多信息,以防其他人搜索并找到此链接。。。每次我不知道答案时都使用随机IV值是硬编码的,但很多时候,IV要么预先挂起消息(IV始终是一个块),要么使用一个零d out块作为IV。您可以尝试这两个选项,看看是否得到有意义的输出。简单地尝试用零IV解密,如果只有第一个块不正确,其余的是正确的消息,那么这就是今天早上尝试的IV;这似乎不起作用。希望其他人知道IV是从哪里创建的。您确定AES并不意味着AES/ECB吗?在这种情况下,将不会有一个IV。不完全确定,但上面的第二个链接声明:使用AES加密(在托管代码中实现为RijndaelManaged)我想我发现了一些东西,所以为了澄清更多信息,以防其他人搜索并找到此链接。。。每次使用随机IV值是硬编码的
  <machineKey
    validationKey="32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F"
    decryptionKey="B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4"
    decryption="AES"
/>