سؤال

وأنا باستخدام الشفرات AES مع حجم كتلة 16 بايت.

إذا أنا أحاول وتشفير سلسلة 16 بايت ليس لدي أي مشاكل، ولكن أي مدة أخرى لا من مضاعفات 16 ورمي استثناء.

وأنا أعلم مع 3-DES يمكنك تحديد نوع الحشو كجزء من الخوارزمية وانها التعامل مع أي عمل إضافي (مثل DES / CBC / PKCS5Padding)، ولكن هناك وسيلة لتحديد ذلك مع AES؟

وأو أحتاج لوح pytes يدويا إلى مضاعفات ال 16، ومن ثم تجريدهم عندما فك تشفير؟ هنا هو نموذج التعليمات البرمجية مختصر.

encrypt = Cipher.getInstance("AES", provider);
encrypt.init(Cipher.ENCRYPT_MODE, key) ;
byte[] encrypted = encrypt.doFinal(plainTxt.getBytes()) ;

وأي وجميع الردود تقدير!

وشكرا مقدما، سياران

هل كانت مفيدة؟

المحلول

ويجب أن تعمل بالضبط نفس الشيء مع AES، أي وضع الحشو أن تكون محددة جنبا إلى جنب مع الشفرات. التي تنفذ وسائط الحشو تعتمد على مزود وينبغي أن توصف في وثائقها.

واستنادا إلى وثائق JCE: http://java.sun.com /j2se/1.5.0/docs/guide/security/jce/JCERefGuide.html#AppA وسائط الحشو القياسية مثل PKCS5Padding ينبغي أن تدعم دائما (على الأقل، كيف لي ان تفسير ذلك).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top