UPDATEDरिजेंडेल 256 सी # और PHP के बीच एन्क्रिप्ट/डिक्रिप्ट?
मैं तो यह) को 256 के एक ब्लॉक आकार का उपयोग करता है, लेकिन अब हैलो दुनिया इस http://pastebin.com/5sXhMV11 तरह लग रहा है और मैं यह पता लगाने नहीं कर सकते कि मैं क्या rtrim साथ इस्तेमाल करना चाहिए (सी # कोड में परिवर्तन किए हैं अंत में गंदगी की सवारी करें।
जब भी आप कहते हैं कि चतुर्थ यादृच्छिक होना चाहिए, तो इसका मतलब है कि आप एक ही चतुर्थ का उपयोग नहीं करते हैं, फिर एक बार या जिस तरह से मैंने इसे गलत कोड किया है?
फिर से धन्यवाद!
हाय,
मैं PHP कि सी # में एन्क्रिप्ट किया गया था के साथ एक स्ट्रिंग डिक्रिप्ट करने के लिए कोशिश कर रहा हूँ। मुझे mcrypt का उपयोग करके इसे डिक्रिप्ट करने के लिए PHP नहीं मिल रहा है और कृपया कुछ मदद के साथ कर सकता है। मुझे php के साथ निम्न त्रुटि मिलती है, इसलिए मुझे लगता है कि मैं IV को सही ढंग से सेट नहीं कर रहा हूं।
त्रुटि: चतुर्थ पैरामीटर ब्लॉकसाइज
दोनों कार्यों का उपयोग के रूप में लंबे समय के रूप में होना चाहिए एक ही सिफर, कुंजी, चतुर्थ और सीबीसी मोड पर सेट:
एन्क्रिप्टेड पाठ से ग # = UmzUCnAzThH0nMkIuMisqg ==
कुंजी 32 लंबे = qwertyuiopasdfghjklzxcvbnmqwerty
iv 16 लंबे = 123456789
सी #
public static string EncryptString(string message, string KeyString, string IVString)
{
byte[] Key = ASCIIEncoding.UTF8.GetBytes(KeyString);
byte[] IV = ASCIIEncoding.UTF8.GetBytes(IVString);
string encrypted = null;
RijndaelManaged rj = new RijndaelManaged();
rj.Key = Key;
rj.IV = IV;
rj.Mode = CipherMode.CBC;
try
{
MemoryStream ms = new MemoryStream();
using (CryptoStream cs = new CryptoStream(ms, rj.CreateEncryptor(Key, IV), CryptoStreamMode.Write))
{
using (StreamWriter sw = new StreamWriter(cs))
{
sw.Write(message);
sw.Close();
}
cs.Close();
}
byte[] encoded = ms.ToArray();
encrypted = Convert.ToBase64String(encoded);
ms.Close();
}
catch (CryptographicException e)
{
Console.WriteLine("A Cryptographic error occurred: {0}", e.Message);
return null;
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine("A file error occurred: {0}", e.Message);
return null;
}
catch (Exception e)
{
Console.WriteLine("An error occurred: {0}", e.Message);
}
finally
{
rj.Clear();
}
return encrypted;
}
पीएचपी
var $mcrypt_cipher = MCRYPT_RIJNDAEL_256;
var $mcrypt_mode = MCRYPT_MODE_CBC;
function decrypt($key, $iv, $encrypted)
{
$encrypted = base64_decode($encrypted);
$decrypted = rtrim(mcrypt_decrypt($this->mcrypt_cipher, $key, $encrypted, $this->mcrypt_mode, $iv), "\0");;
return $decrypted;
}
धन्यवाद
चतुर्थ वास्तव में यादृच्छिक होना चाहिए। यह एक होने के उद्देश्य को हरा देता है यदि यह नहीं है। – quantumSoup
256-बिट ब्लॉक के साथ रिजेंडेल गैर-मानक है। – kroiz