Sameera Abubaker

الأعضاء
  • المساهمات

    11
  • تاريخ الانضمام

  • تاريخ آخر زيارة

السُّمعة بالموقع

1 Neutral
  1. تم تطبيق الكود واعطى نتيجة جيدة في الطباعة لكن للاسف لم يعطي النتيجة المرجوة في القيم عند دخولها للعملية الاخرى للعلم : احاول تطبيق خوارزمية AES128
  2. السلام عليكم ورحمة الله وبركاته لدي مصفوفة من نوع byte واريد استخرج بعض القيم منها ولكن المشكلة في الاستخراج يطبع لي قيمة سالبة الكود كالتالي : package prog; public class prog { static byte[][] sbox = {{(byte)0x63,(byte) 0x7c, (byte)0x77, (byte)0x7b,(byte) 0xf2,(byte) 0x6b,(byte) 0x6f, (byte)0xc5,(byte) 0x30, (byte)0x01, (byte)0x67,(byte) 0x2b, (byte)0xfe, (byte)0xd7, (byte)0xab, (byte)0x76}, {(byte)0xca, (byte)0x82, (byte)0xc9, (byte)0x7d, (byte)0xfa, (byte)0x59, (byte)0x47, (byte)0xf0, (byte)0xad, (byte)0xd4, (byte)0xa2, (byte)0xaf, (byte)0x9c, (byte)0xa4, (byte)0x72, (byte)0xc0}, {(byte)0xb7, (byte)0xfd, (byte)0x93, (byte)0x26, (byte)0x36, (byte)0x3f, (byte)0xf7, (byte)0xcc, (byte)0x34, (byte)0xa5, (byte)0xe5, (byte)0xf1, (byte)0x71, (byte)0xd8, (byte)0x31, (byte)0x15}, {(byte)0x04, (byte)0xc7, (byte) 0x23, (byte)0xc3, (byte)0x18, (byte)0x96, (byte)0x05, (byte)0x9a, (byte)0x07, (byte)0x12, (byte)0x80, (byte)0xe2, (byte)0xeb, (byte)0x27, (byte)0xb2, (byte)0x75}, {(byte)0x09, (byte)0x83, (byte)0x2c, (byte)0x1a, (byte)0x1b, (byte)0x6e, (byte)0x5a, (byte)0xa0, (byte)0x52, (byte)0x3b, (byte)0xd6, (byte)0xb3, (byte)0x29, (byte)0xe3, (byte)0x2f, (byte)0x84}, {(byte)0x53, (byte)0xd1, (byte)0x00, (byte)0xed, (byte)0x20, (byte)0xfc, (byte)0xb1, (byte)0x5b, (byte)0x6a, (byte)0xcb, (byte)0xbe, (byte)0x39, (byte)0x4a, (byte)0x4c, (byte)0x58, (byte)0xcf}, {(byte)0xd0, (byte)0xef, (byte)0xaa, (byte)0xfb, (byte)0x43, (byte)0x4d, (byte)0x33, (byte)0x85, (byte)0x45, (byte)0xf9, (byte)0x02, (byte)0x7f, (byte)0x50, (byte)0x3c, (byte)0x9f, (byte)0xa8}, {(byte)0x51, (byte)0xa3, (byte)0x40, (byte)0x8f, (byte)0x92, (byte)0x9d, (byte)0x38, (byte)0xf5, (byte)0xbc, (byte)0xb6, (byte)0xda, (byte)0x21, (byte)0x10, (byte)0xff, (byte)0xf3, (byte)0xd2}, {(byte)0xcd, (byte)0x0c, (byte)0x13, (byte)0xec, (byte)0x5f, (byte)0x97, (byte)0x44, (byte)0x17, (byte)0xc4, (byte)0xa7, (byte)0x7e, (byte)0x3d, (byte)0x64, (byte)0x5d, (byte)0x19, (byte)0x73}, {(byte)0x60, (byte)0x81, (byte)0x4f, (byte)0xdc, (byte)0x22, (byte)0x2a, (byte)0x90, (byte)0x88, (byte)0x46, (byte)0xee, (byte)0xb8, (byte)0x14, (byte)0xde, (byte)0x5e, (byte)0x0b, (byte)0xdb}, {(byte)0xe0, (byte)0x32, (byte)0x3a, (byte)0x0a, (byte)0x49, (byte)0x06, (byte)0x24, (byte)0x5c, (byte)0xc2, (byte)0xd3, (byte)0xac, (byte)0x62, (byte)0x91, (byte)0x95, (byte)0xe4, (byte)0x79}, {(byte)0xe7, (byte)0xc8, (byte)0x37, (byte)0x6d, (byte)0x8d, (byte)0xd5, (byte)0x4e, (byte)0xa9, (byte)0x6c, (byte)0x56, (byte)0xf4, (byte)0xea, (byte)0x65, (byte)0x7a, (byte)0xae, (byte)0x08}, {(byte)0xba, (byte)0x78, (byte)0x25, (byte)0x2e, (byte)0x1c, (byte)0xa6, (byte)0xb4, (byte)0xc6, (byte)0xe8, (byte)0xdd, (byte)0x74, (byte)0x1f, (byte)0x4b, (byte)0xbd, (byte)0x8b, (byte)0x8a}, {(byte)0x70, (byte)0x3e, (byte)0xb5, (byte)0x66, (byte)0x48, (byte)0x03, (byte)0xf6, (byte)0x0e, (byte)0x61, (byte)0x35, (byte)0x57, (byte)0xb9, (byte)0x86, (byte)0xc1, (byte)0x1d, (byte)0x9e}, {(byte)0xe1, (byte)0xf8, (byte)0x98, (byte)0x11, (byte)0x69, (byte)0xd9, (byte)0x8e, (byte)0x94, (byte)0x9b, (byte)0x1e, (byte)0x87, (byte)0xe9, (byte)0xce, (byte)0x55, (byte)0x28, (byte)0xdf}, {(byte)0x8c, (byte)0xa1, (byte)0x89, (byte)0x0d, (byte)0xbf, (byte)0xe6, (byte)0x42, (byte)0x68, (byte)0x41, (byte)0x99, (byte)0x2d, (byte)0x0f, (byte)0xb0, (byte)0x54, (byte)0xbb, (byte)0x16}}; public static String ToHexString(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (int i=0; i<bytes.length; i++) { sb.append(String.format("%02X",bytes[i])); } return sb.toString(); } public static void main(String[] args) { System.out.println(sbox[4][1]); System.out.println(Integer.toHexString(-125)); } } والمخرجات كالتالي run: -125 ffffff83 BUILD SUCCESSFUL (total time: 0 seconds) والمفروض يكون الطباعة للعدد 83 فقط من غير ffffffff كيف اتخلص من المشكلة ؟؟
  3. لقد عدلت نوع المصفوفة sbox الى byte فصارت المخرجات احسن من السابق والffffffff تظهر قبل الرقم في القيم السالبة ساحاول تطبيق التعديل الذي اقترحته حضرتك وان شاء الله يضبط وشكرا
  4. System.out.print(sbox[r][c]+" "); عند طباعة هذا الكود ظهر الناتج بالشكل المطلوب وهو كالتالي Inside subByte: ولكن للاسف لم اجد طريقة لتحويل النص الى بايت لان كل الطرق تؤدي الى byte array وبالتالي يتم وضع خانات لايجب ظهورها
  5. تعديل جميل ولكن الدالة يجب ان يمرر لها matrix من نوع byte لانه المتغيير يكون كذلك في الmain ويمر بعدة دوال على هذه الحالة تعديل جميل ولكن تكمن المشكلة في حجم العنصر في ال matrix حيث اصبح عنصر كبير مثل ما اشرت في صورة المخرجات حيث من المفترض ان يكون العنصر a1 وليس ffffffa1
  6. static String[][] sbox={{"63","7C","77","7B","F2","6B","6F","C5","30","01","67","2B","FE","D7","AB","76"}, {"CA","82","C9","7D","FA","59","47","F0","AD","D4","A2","AF","9C","A4","72","C0"}, {"B7","FD","93","26","36","3F","F7","CC","34","A5","E5","F1","71","D8","31","15"}, {"04","C7","23","C3","18","96","05","9A","07","12","80","E2","EB","27","B2","75"}, {"09","83","2C","1A","1B","6E","5A","A0","52","3B","D6","B3","29","E3","2F","84"}, {"53","D1","00","ED","20","FC","B1","5B","6A","CB","BE","39","4A","4C","58","CF"}, {"D0","EF","AA","FB","43","4D","33","85","45","F9","02","7F","50","3C","9F","A8"}, {"51","A3","40","8F","92","9D","38","F5","BC","B6","DA","21","10","FF","F3","D2"}, {"CD","0C","13","EC","5F","97","44","17","C4","A7","7E","3D","64","5D","19","73"}, {"60","81","4F","DC","22","2A","90","88","46","EE","B8","14","DE","5E","0B","DB"}, {"E0","32","3A","0A","49","06","24","5C","C2","D3","AC","62","91","95","E4","79"}, {"E7","C8","37","6D","8D","D5","4E","A9","6C","56","F4","EA","65","7A","AE","08"}, {"BA","78","25","2E","1C","A6","B4","C6","E8","DD","74","1F","4B","BD","8B","8A"}, {"70","3E","B5","66","48","03","F6","0E","61","35","57","B9","86","C1","1D","9E"}, {"E1","F8","98","11","69","D9","8E","94","9B","1E","87","E9","CE","55","28","DF"}, {"8C","A1","89","0D","BF","E6","42","68","41","99","2D","0F","B0","54","BB","16"}}; public static void SubByte(byte[][] s) { System.out.println("Inside subByte :"); int i,j,r,c; String su,x1,x2,str; for(i = 0 ; i <4 ;i++) { for(j = 0; j <4 ; j++) { su = Integer.toHexString(s[i][j]); x1=su.substring(0,1) ; x2=su.substring(1,2) ; r =Integer.parseInt(x1,16); c = Integer.parseInt(x2,16); //subByte process s[i][j]=sbox[r][c];//here the error s[i][j] should be in binary bt sbox[r][c] value in string System.out.println(s); } } return s ; }//end SubByte fuction
  7. المشكلة هي ان النتيجة صارت byte array وليست byte
  8. شكرا ولكن الطريقتان لم تعطي القيمة المتوقعة . احاول العمل على خوارزمية SubByte ولكن الى الان المشكلة في اختلاف انواع المتغيرات
  9. ماذا عن التحويل من نوع int الى نوع byte ??? اذا كان المتغير معرف مثلا كالتالي : int x = 0x1A ; فكيف يكون التحويل الى byte ؟؟؟
  10. لدي قيمة نصية في متغير يحوي رقم بالنظام السادس عشر مثلا : Str="1A" وارغب في وضع هذه القيمة في متغير من نوع byte وليس byte array فارجو افادتي في ذلك بلغة الجافا وشكر