के साथ PHP एन्क्रिप्ट/डिक्रिप्ट मुझे अपना एन्क्रिप्शन फ़ंक्शन ठीक से काम कर रहा है, हालांकि मैं यह समझ नहीं सकता कि उचित आउटपुट देने के लिए डिक्रिप्ट फ़ंक्शन कैसे प्राप्त करें।ट्रिपलडेस, पीकेसीएस 7, और ईसीबी
function Decrypt($data, $secret)
{
$text = base64_decode($data);
$data = mcrypt_decrypt('tripledes', $secret, $text, 'ecb');
$block = mcrypt_get_block_size('tripledes', 'ecb');
$pad = ord($data[($len = strlen($data)) - 1]);
return substr($data, 0, strlen($data) - $pad);
}
अभी मैं test
की एक प्रमुख उपयोग कर रहा हूँ और मैं 1234567
एन्क्रिप्ट करने के लिए कोशिश कर रहा हूँ:
function Encrypt($data, $secret)
{
//Generate a key from a hash
$key = md5(utf8_encode($secret), true);
//Take first 8 bytes of $key and append them to the end of $key.
$key .= substr($key, 0, 8);
//Pad for PKCS7
$blockSize = mcrypt_get_block_size('tripledes', 'ecb');
$len = strlen($data);
$pad = $blockSize - ($len % $blockSize);
$data .= str_repeat(chr($pad), $pad);
//Encrypt data
$encData = mcrypt_encrypt('tripledes', $key, $data, 'ecb');
return base64_encode($encData);
}
यहाँ मेरी डिक्रिप्ट समारोह है:
यहाँ मेरी एन्क्रिप्ट कार्य है। मुझे एन्क्रिप्शन से बेस 64 आउटपुट मिलता है जिसे मैं ढूंढ रहा हूं, लेकिन जब मैं डिक्रिप्ट करने जाता हूं तो यह कुछ भी नहीं (एक खाली क्षेत्र) देता है।
मैं एन्क्रिप्शन/डिक्रिप्शन में बहुत अच्छी तरह से ज्ञात नहीं हूं इसलिए किसी भी मदद की बहुत सराहना की जाती है !!
मैं सीईसी के साथ एईएस, ईसीबी के साथ 3 डीईएस को बदलने और एक मैक जोड़ने की सलाह देता हूं। – CodesInChaos
आपकी सिफारिश @CodesInChaos के लिए धन्यवाद। मैं इस तरह के विनिर्देशों को बदलने में असमर्थ हूं और मुझे जो भी मिला है उसका उपयोग करना है, भले ही यह शायद कम सुरक्षित हो। –