मैं निम्नलिखित सी # कोड है कि कुंजी उत्पन्न करता है:अंतर
public static byte[] Encrypt(byte[] plainData, string salt)
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(salt);
DES.IV = ASCIIEncoding.ASCII.GetBytes(salt);
ICryptoTransform desencrypt = DES.CreateEncryptor();
byte[] encryptedData = desencrypt.TransformFinalBlock(plainData, 0, plainData.Length);
return encryptedData;
}
private string GetEncryptedKey(string key)
{
return BitConverter.ToString(KeyGeneratorForm.Encrypt(ASCIIEncoding.ASCII.GetBytes(key), "abcdefgh")).Replace("-", "");
}
मैं PHP में एक ही बात को करने के लिए कोशिश कर रहा हूँ:
function get_encrypted_key($key){
$salt = "abcdefgh";
return bin2hex(mcrypt_encrypt(MCRYPT_DES, $salt, $key, MCRYPT_MODE_CBC, $salt));
}
हालांकि, वहाँ है परिणामों में एक छोटे से discrepency, पिछले 16 वर्ण के रूप में हमेशा अलग हैं:
With key "Benjamin Franklin":
C# : 0B3C6E5DF5D747FB3C50DE952FECE3999768F35B890BC391
PHP: 0B3C6E5DF5D747FB3C50DE952FECE3993A881F9AF348C64D
With key "President Franklin D Roosevelt":
C# : C119B50A5A7F8C905A86A43F5694B4D7DD1E8D0577F1CEB32A86FABCEA5711E1
PHP: C119B50A5A7F8C905A86A43F5694B4D7DD1E8D0577F1CEB37ACBE60BB1D21F3F
मैं भी गद्दी टी प्रदर्शन करने की कोशिश की है निम्नलिखित कोड का उपयोग करके मेरी कुंजी के लिए ransform:
function get_encrypted_key($key){
$salt = "abcdefgh";
$extra = 8 - (strlen($key) % 8);
if($extra > 0) {
for($i = 0; $i < $extra; $i++) {
$key.= "\0";
}
}
return bin2hex(mcrypt_encrypt(MCRYPT_DES, $salt, $key, MCRYPT_MODE_CBC, $salt));
}
लेकिन मैं बिना पैडिंग के परिणाम के साथ समाप्त होता हूं।
यदि आपके पास क्या हो रहा है, इस बारे में कोई संकेत है, तो मुझे इसके बारे में सुनकर खुशी होगी! :)
धन्यवाद
हो सकता है कि विभिन्न गद्दी योजनाओं का एक परिणाम? – mensi
यदि "क्लासिक" पैडिंग स्निपेट द्वारा, आपका मतलब है कि 'mcrypt_encrypt' पर नोट्स के शीर्ष पर दाईं ओर उल्लिखित एक है, जो मुझे PHP से आपके' सी # 'परिणाम देता है। ध्यान दें कि स्निपेट ईसीबी का उपयोग करता है, सीबीसी नहीं, इसलिए आपको इसे ट्विक करने की आवश्यकता है। –
आपकी टिप्पणियों के लिए धन्यवाद दोस्तों। मैंने पैडिंग के लिए इस्तेमाल किए गए कोड का विस्तृत विवरण दिया है। मैं जॉन के लिंक में देखूंगा। – karlipoppins