当前位置: 首页 > 面试题库 >

C#SHA-1与PHP SHA-1…结果不同吗?

壤驷华辉
2023-03-14
问题内容

我正在尝试从字符串计算SHA-1哈希,但是当我使用php的sha1函数计算字符串时,我得到的东西与在C#中尝试时有所不同。我需要C#计算与PHP相同的字符串(因为php的字符串是由我无法修改的第三方计算的)。如何获取C#以生成与PHP相同的哈希值?谢谢!!!

字串= s934kladfklada@a.com

C#代码(生成d32954053ee93985f5c3ca2583145668bb7ade86)

        string encode = secretkey + email;
        UnicodeEncoding UE = new UnicodeEncoding();
        byte[] HashValue, MessageBytes = UE.GetBytes(encode);
        SHA1Managed SHhash = new SHA1Managed();
        string strHex = "";

        HashValue = SHhash.ComputeHash(MessageBytes);
        foreach(byte b in HashValue) {
            strHex += String.Format("{0:x2}", b);
        }

PHP代码(生成a9410edeaf75222d7b576c1b23ca0a9af0dffa98)

sha1();

问题答案:

使用ASCIIEncoding而不是UnicodeEncoding。PHP使用ASCII字符集进行哈希计算。



 类似资料:
  • 我在这里漏掉了什么?我试过上/下现金,每个字节之间的空格。我不确定还能试什么。 这个问题开始是因为我在Python中实现了这个,但在我担心代码之前,我试图理解为什么这是不同的。

  • 问题内容: 我试图比较两个由sha512编码的不同字符串。但是,结果不同。我的意思是这可能是编码问题。我希望你能帮助我。 这是我的Java代码: 并且,这是我的C#代码: 问题出在哪里 ?谢谢你们 更新 如果我不指定编码类型,那么我想它就是Unicode。结果是这样(不指定任何内容): 相反,如果我在Java中指定UTF-16: 总是不同的! 问题答案: 在C#中使用的in对应于 Little-e

  • 我有一个遗留的应用程序,我们正在重写,我正在转换现有的用户表。密码是用sha-1加盐加密的。特别是salt+密码。例如,如果salt是ABC123,密码是XYZ789,那么要加密的字符串是ABC123XYZ789。Spring Security默认情况下加密字符串XYZ789{ABC123}。如何实现我自己的密码加密/验证以绕过Spring Security的默认加密。 谢谢你的帮助!

  • 但我的问题是,当我从Eclipse导出项目以生成签名apk时,它不允许使用现有的密钥库;此外,当我选择existing keystore时,别名的下拉列表为空。所以每次我都要创建新的密钥库。在选择退出密钥存储时,它还显示“无效密钥存储格式”。请提供我的一些解决方案,以我如何生成一个APK与相同的SHA-1密钥。

  • 问题内容: 我正在寻找一种以Java字节数组作为消息获取SHA-1校验和的方法。 我应该使用第三方工具还是JVM内置的某些工具可以帮助您? 问题答案: 关于什么:

  • 本文向大家介绍Java实现SHA-1算法实例,包括了Java实现SHA-1算法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现SHA-1算法的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的java程序设计有所帮助。