الحصول على المفتاح السري الأصلي من التنسيق السداسي

StackOverflow https://stackoverflow.com/questions/1805160

  •  05-07-2019
  •  | 
  •  

سؤال

هذا هو التنسيق السداسي للمفتاح السري المستخدم لتشفير AES

00010203050607080A0B0C0D0F101112

هل يمكنني إنشاء تنسيق SecretKey الأصلي أو مجموعة البايت من هذا؟

إذا كان الأمر كذلك كيف؟

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

المحلول

ويمكنك استخدام أباتشي العموم ترميز لأداء فك عرافة،

http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Hex.html#decodeHex (شار [])

إذا كنت لا تريد استخدام أي والمكتبات، ويمكنك أيضا القيام بذلك،

byte[] bytes = new BigInteger("7F" + str, 16).toByteArray();
SecretKeySpec key = new SecretKeySpec(bytes, 1, bytes.length-1, "AES");

لديك لإضافة بايت إضافية 0x7F لمنع BigInteger من تجريد الأصفار البادئة أو إضافة بايت الموقعة.

نصائح أخرى

أ SecretKey هي واجهة.ما هو نوع التنفيذ؟لدى J2SE فئتين تنفيذيتين، KerberosKey و SecretKeySpec, ، وكلاهما يحتوي على مُنشئات بمصفوفة بايت كمعلمة.

ما هو شكل SecretKey الأصلي منتديات هل أنت على علم byte[] يحتوي على وقع بايت قيمة من -128 إلى 127؟ هل تشعر بالألم إذا حاولت هذه:

byte[] key = {
  0x00,0x01,0x02,0x03,0x05,0x06,0x07,0x08,
  0x0A,0x0B,0x0C,0x0D,0x0F,0x10,0x11,0x12
};

ملحوظة: إذا كان لديك قيم مثل 0x80 - عشرية 0xFF ستحتاج إلى طرحهم باسم (بايت) 0x80 - (بايت) عشرية 0xFF لتجنب تحذيرا حول مجموعة

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