duan2891 2013-05-02 07:35
浏览 46

php sha1不匹配.Net sha1Managed

I am having problem in matching a SHA1 algorithm in PHP and C# .Net. I need to modify the PHP code to match with .Net value.

The code in .Net is as following:

DateTime dtNow = DateTime.parse("4/29/2013 11:50:18 PM");
//Create the site token header
var siteTokenMessageHeader = new SiteTokenMessageHeader
{
    MessageId = "0289ED53-D69B-451C-BCBB-C7412D07AFFE",
    //Unquie Id per message, use for auditing
    TimeStamp = dtNow,
    //Current Time
    SiteId = _siteId,
};
//Construct Token 
var token = string.Format(
    "{0}:\"MessageId\":\"{1}\"\"SiteId\":\"{2}\"\"TimeStamp\":\"{3}\"",
    _siteKey,
    siteTokenMessageHeader.MessageId,
    siteTokenMessageHeader.SiteId,
    siteTokenMessageHeader.TimeStamp.ToString(new CultureInfo("en-US"))); //1/1/2000 12:00:00 AM
//Construct signature from token
var shaProvider = new SHA1Managed();
var rawKey = Encoding.Unicode.GetBytes(token);
var rawHash = shaProvider.ComputeHash(rawKey);
var signature = BitConverter.ToString(rawHash).Replace("-", "").ToLower();

siteTokenMessageHeader.SiteSignature = signature;

The signature variable value: 8cf9000e9b1a6da0e898bada5bf6dd8f6d17d72a

The PHP code is as following:

$str = $SiteKey.':"MessageId":"0289ED53-D69B-451C-BCBB-C7412D07AFFE""SiteId":"'.$SiteId.'""TimeStamp":"4/29/2013 11:50:18 AM"';
$hash = sha1($str);

The $hash variable value: 1d2fb85fd63a14de0b5e0a95be253eac1a625128

The same topic has been answered quite a few times but none of those are helpful in this case. Anybody's help will be appreciable.

  • 写回答

2条回答 默认 最新

  • dr2898 2013-05-02 07:39
    关注

    See here its AM in PHP

    ""TimeStamp":"4/29/2013 11:50:18 AM"'
                                     ^^
    

    And PM in C#

    parse("4/29/2013 11:50:18 PM");
                              ^^
    

    Because of this ,different result is coming.

    Make both as AM OR PM, you will get same hash.

    评论

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算