2012-10-01 31 views
5

मुझे PHP में एक ही हैश की गणना करने में कुछ परेशानी हो रही है क्योंकि मैं सी # .NET में हूं।मैं PHP में यह टोकन कैसे उत्पन्न करूं? (.NET से)

HMAC hasher = new HMACSHA256(Encoding.UTF8.GetBytes("secret")); //key 
byte[] data = hasher.ComputeHash(Encoding.UTF8.GetBytes("2012-10-01T17:48:56")); //timestamp 
Convert.ToBase64String(data); //computed token 

कौन सा की तरह कुछ का उत्पादन:

सी # में, मैं निम्नलिखित है

yBV7ZfAyT1FwO5sGEVd3aPYUfBz9geN6ghK9RO68jwo =


पीएचपी में, मुझे लगा कि यह गणना करेंगे हैश वही तरीका:

$hmac = hash_hmac("sha256", "2012-10-01T17:48:56", "secret"); 
$hmac = base64_encode($hmac); 

हालांकि यह एक बहुत अलग, बड़ा हैश पैदा करता है:

YzgxNTdiNjVmMDMyNGY1MTcwM2I5YjA2MTE1Nzc3NjhmNjE0N2MxY2ZkODFlMzdhODIxMmJkNDRlZWJjOGYwYQ ==

उत्तर

3

आप कच्चे बाइनरी डेटा उत्पादन के साथ hash_hmac उपयोग करने की कोशिश की है?

$hmac = hash_hmac("sha256", "2012-10-01T17:48:56", "secret", true); 
$hmac = base64_encode($hmac); 

यह और अधिक नेट से एक की तरह एक उत्पादन का उत्पादन करने के लिए लगता है:

NASzFnV3Flw5ppkTIja5/aaFELPNIpfQb+kbsXCAm0Q= 
मेरे मामले में

+0

हाँ, मैंने अभी कोशिश की और यह समस्या थी। धन्यवाद! – Buchannon