الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Error In Decryption (input Length Must Be Multiple Of 16 When Decrypting With Padded Cipher)

بدأه computeach في 15 نوفمبر 2009 · 2 رد · 975 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كتبت مشروع يعمل فك التشفير لملف باستخدام AES - 128

ولكن عندي مشكلة في الكود ولي يومين احاول احلها بش مش قادرة

وهي ظهور هذه الرسالة عن عمل run

"Input length must be multiple of 16 when decrypting with padded cipher"

بالرغم اني جربت اكثر من كود واكثر من طريقة لحل المشكلة لكن دون فائدة

الرجاء مساعدتي وشكرا

وهذا الكود

 public byte[] decrypt (byte[] cipherText)
	throws NoSuchAlgorithmException,GeneralSecurityException {
	cipher.init(Cipher.DECRYPT_MODE, key);

			  // Remove cipher text length
				int blocksize = 16;
				int ciphertextLength = 0;
				int remainder = cipherText.length % blocksize;
				if (remainder == 0) {
					ciphertextLength = cipherText.length;
				}else{
					ciphertextLength = cipherText.length - remainder + blocksize;
				}


			// how should i know the exact byte size require ?
			byte [] decrypted = new byte[ciphertextLength];

			int outLength = cipherText.length;


	int ptLength = cipher.update( cipherText , 0 , outLength , decrypted , 0 );
	ptLength+= cipher.doFinal( decrypted, ptLength );


		return decrypted;
}
#2

أظن أنه يجب تمديد مصفوفة الدخل بحيث يصبح طولها من مضاعفات الـ 16 وذلك قبل تمريرها للتابع decrypt

(تمديد بفراغات مثلاً)

#3

أنا مش عارفه كيف اعمل هذا الشي

مواضيع مشابهة