我有一个asp web应用程序,我正在使用.net Web Security库来创建用户方法
MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, out MembershipCreateStatus status);
此外,我的Web.config
文件
的machineKey
<machineKey validationKey="52556EFC87C01645626E448147EDCE5AFD0BAC7D6C2E23FEDC789ED09C18ADBB81D52DDE60EDCC548CD4818249B197B364C2E7E287855E3F0C6BBB2A08F90CD5" decryptionKey="2A0BEA061F4A2AAAE75D6D4B0F97231F890332D2B10AED84AF6D0C5B09C38605" validation="SHA1" decryption="AES"/>
和
<add applicationName="MyApplication" name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresUniqueEmail="false" passwordFormat="Hashed" requiresQuestionAndAnswer="false" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0" maxInvalidPasswordAttempts="5"/>
我想问一下,如果可以解密Asp会员密码,我该怎么办?
如果有人需要更多信息,请告诉我
答案 0 :(得分:1)
默认情况下, SqlMembershipProvider 使用 SHA1 。
SqlMembershipProvider Hash 与 machineKey 标记无关。 machineHey的 仅供参考: 验证用于 ViewState加密。
巧合的是,machineKey的验证定义为 SHA1 。 仅供参考: 您甚至不需要明确设置它,因为SHA1是default value。
(注意:如果密码格式已加密,则MembershipProvider会使用计算机密钥。)
您无法解密哈希密码,但您可以找到冲突。但是,它估计通过从云服务器租用CPU功率来打破单个哈希值的$2.77M成本。