• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

Raydex

اعضاء جدد
  • عدد المشاركات

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

  • تاريخ اخر زياره

السمعه بالموقع

1 عادي

عن Raydex

  • الرتبة
    عضو جديد
  • تاريخ الميلاد 02/04/1989

معلومات الملف الشخصي

  • الجنس ذكر
  1. مشكلة في برنامج Image Encryption

    لم يكن قصدي من الملاحظة طلب المساعدة، البرنامج يعمل و قد سلمته و انتهى الموضوع.. القصد هو تنبيه من أراد استخدام البرنامج أو تطويره.
  2. مشكلة في برنامج Image Encryption

    تفضلوا البرنامج النهائي كما وعدتكم. ملاحظات: 1. لضمان جودة الصور بعد فك التشفير، يجب استخدام صيغة الbmp لأنها لا تقوم بضغط الصور مما سيحول دون حدوث تشوّه في الصور المعالجة. 2. الshifting method لم تعمل للأسف، حيث أنه عند استخدامها تشكل ثقلا على المعالج الذي لا يستطيع إكمال هذه العملية فيحصل crash للcompiler، و لكنها تعمل بشكل ممتاز في برنامج الtest باستخدامنا لقيم int، فيبدو أن هناك مشكلة في الshifting مع الsetRGB(). لا أظن أن هناك مشكلة في منطق هذه العملية و لكن يبدو أن هناك عاملاً أغفلته أو أجهله خلال العمل عليها. على أي حال، التشفير بطريقتي الXOR و الimageDistrot أكثر من كافي لجعل الصورة خالية الملامح و كان الshifting مجرد عامل مساعد لا أكثر. FinalCompleteProgram.java
  3. مشكلة في برنامج Image Encryption

    حسناً سأوضح لكم المشكلة بشكل مفصّل، و لكني سأؤجل عرض البرنامج إلى ما بعد موعد التسليم. المشكلة أنني بعدما جربت طرقاً عديدة للتشفير لم تعط أغلبها نتائج مرضية، فحاولت أن أبحث عن طريقة تشفير سهلة و فعّالة في نفس الوقت ووجدت طريقة الXOR فهي من البساطة بمكان أنك تستخدم الalgorithm نفسها في عميلة التشفير و فك التشفير بدون الحاجة إلى عكس العملية. و لكني قبل أن أضيف هذه الطريقة إلى البرنامج حاولت أن أجد حلاً لمشكلة جودة الصور حيث أنني كنت أستخدم صيغة الjpg فقط في البداية و كنت أعلم أن هذه الصيغة تضغط الصور بشكل كبير و لكن لم أنتبه إلى أنها بذلك تقرّب قيم الRGB مما يؤدي إلى تشوّه الصورة المُعالجة بها، فارتأيت أن أستبدل ال()ImageIO.write بmethod أخرى ترتكز على حزمة الImageWriteParameter و التي تعطي تحكما أكثر في ضغط و جودة الصور. المفارقة المضحكة هنا أن هذه الحزمة تفترض أن الصورة المراد معالجتها هي jpg و تعمل على هذا الأساس حتى و لو كانت الصورة من صيغة مختلفة، و هذا بيت القصيد إذ اتضح أن الدواء هو سبب الداء :P، و لذلك عانيت معاناة جمّة في محاولة معرفة سبب تشوّه الصور بعد عملية فك التشفير مع أنني استخدمت الbmp و التي لا تقوم بالضغط أصلاً، حتى قام أحد الأخوان الأعزاء هنا بإعطائي تلميحاً عن مشكلة الصيغ و رجعت إلى استخدام ال()ImageIO.write و حُلت المشكلة. و سوف أزودكم بالبرنامج قريباً بإذن الله.. دمتم بود،،
  4. مشكلة في برنامج Image Encryption

    سأعرضه إن شاء الله، و لكني لم أنته من عمليات التشفير كلها بعد، لأن الencryption algorithm التي خططت لها تعتمد على 3 خطوات: تغيير أماكن الpixels، تغيير قيم الRGB لكل لون، و في النهاية عمل الXOR لقد نجحت في عمل العمليتين الأخيرتين و لكن الpixel shifting لم تعمل بشكل صحيح في البرنامج نفسه لحد الآن و جاري العمل عليها. شكرا مجددا لمن قدم المساعدة و أخص بالذكر أخي ibr_exn.
  5. مشكلة في برنامج Image Encryption

    فعلا أخي المشكلة كانت في الضغط المستخدم في صيغة الjpg الآن البرنامج يعمل بشكل ممتاز وكما توقعتز جزاكم الله خيرا و شكرا على المساعدة
  6. مشكلة في برنامج Image Encryption

    جزاك الله ألف خير يا أخي! لقد جعلتني اتنبّه إلى شيء مهم و هو أنني باستخدام الImageWriteParam أجبرت الجافا على التعامل مع الصور بطريقة الjpg و لذلك كان يضغط الصور و يشوهها حتى لو كانت bmp الآن البرنامج يعمل 100% كما أردت و الفضل بعد الله هو لك، لا تعرف كم يعني لي هذا الشيء، خصوصا و أن تسليم البرنامج في الأسبوع القادم. سدد الله خطاك و رزقك الجنة و أهلك و محبيك. تحياتي، أخوك علي
  7. مشكلة في برنامج Image Encryption

    ibr_exn : شكرا على الملاحظة و لكني بالفعل قمت باستخدام أكثر من نوع من الصور، و من بينها صيغة الbmp ولكن النتيجة كانت مشابهة. herch : عزيزي كما قلت لك في هذا السطر عملت encryption للصورة فعلا و من الطبيعي أن تكون مغايرة للصورة الأصلية، و لكني أتحدث عن عملية الdecryption، فإن كنت قد قرأت كلامي جيدا فستعرف أن تعريض الصورة ال encrypted إلى هذا السطر مرة أخرى سيردها إلى أصلها و بذاك سنحصل على الصورة الأصلية، و هذا ما يعرف بالsymmetric encryption أو التشفير الموازي، أي أن الkey المستخدم في الencryption يستخدم ذاته في عملية ال decryption. مشكلتي هنا ليست مع الencryption و إنما مع الdecryption حيث أنني أحصل على صورة مشابهة للأصلية بنسبة 70-80% و لكن هناك بعض التشوه الذي يحدث فيها.
  8. مشكلة في برنامج Image Encryption

    هذا هو هدف البرنامج الأساسي، تغيير قيمة الpixel عند التعامل مع الصورة الأصلية، و إرجاعها إلى أصلها عندما أعرّضها لنفس العملية مرة أخرى (encryption/decryption). دعني أعطيك مثالا: افترض أن قيمة الRGB في الpixel هي 100010، و المفتاح أو الkey قيمته 010110 عندما أقوم بعملية الXOR بينهما سأحصل على قيمة جديدة و هي تمثّل الpiixel المشفّرة و ستكون: 100010 ^ 010110 = 110100 و هذه القيمة تمثّل الpixel المشفّرة الآن و طبقا لطريقة الsymmetric encryption فإنني أستطيع أن أرد القيمة إلى أصلها من خلال إجراء العملية مرة أخرى، و لكن في هذه المرة مع القيمة المشفّر و المفتاح و سأحصل على قيمة الpixel الأصلية: 110100 ^ 010110 = 100010 فكما ترى لقد استطعت أن أرجع قيمة الpixel من خلال معرفتي بالkey و الpixel المشفّرة فقط. أرجو أن تصلك نقطتي، و هذا رابط يوضّح عملية الXOR بالتفصيل لمن أراد أن يطّلع عليه:اضغط هنا
  9. بسم الله الرحمن الرحيم إني أعاني من مشكلة معقدة لم أجد لها حلاً منطقياً. من المعروف أن عملية الXOR تُستخدم في الsymmetric encryption وأن في هذه الطريقة تتم عملية decryption من خلال عمل الXOR للencrypted image و من المفترض أن تحصل على صورة مطابقة للصورة الأصلية تماما لأنها تُرجع قيمة الRGB ذاتها الموجودة في الصورة الأصلية قبل عملية التشفير. مشكلتي تتخلص في أنني عندما آحاول أن أقوم بعملية ال decryption للصورة أحصل على صورة مشوهة من الصورة الأصلية، و مدى التشوّه يختلف باختلاف قيمة الkey الذي أستعمله في عملية ال XOR مع قيمة الRGB في الصورة.لقد استنفدت كل الطرق في محاولة تحليل المشكلةا منطقيا، و لكن كل التجارب التي أجريتها قادتني إلى نتيجة واحدة و هي أن عملية الXOR بذاتها ليس بها مشكلة، و بدأت أشك بأنها مشكلة جودة في الصور من الجافا نفسه أو شيئا آخرلم انتبه له. هذا هو كود البرنامج و أرجو أن تفيدوني بما تستطيعون، خصوصا أنني لست متعمقا في مسألة التعامل مع الصور في الجافا. import java.util.*; import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.*; import javax.imageio.stream.*; import javax.swing.ImageIcon; import javax.imageio.plugins.jpeg.JPEGImageWriteParam; class EncryptionTest { public static void main(String [] args) throws Exception { System.out.println("Please enter the name of file that you wish to process."); System.out.println("The program will not function properly if the specified file does not exist or uses an unknown extension:"); Scanner keyb = new Scanner(System.in); String inputFileName = keyb.nextLine(); String inputFileType = inputFileName.substring(inputFileName.indexOf('.')+1); String inputfileNameWithoutExtension = inputFileName.substring(0, inputFileName.indexOf('.')); File myImageFile = new File(inputFileName); Image img = ImageIO.read(myImageFile); BufferedImage bufferedImage = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB); Iterator writers = ImageIO.getImageWritersByFormatName( "jpg" ); ImageWriter imageWriter=(ImageWriter) writers.next(); ImageWriteParam jpgparams=imageWriter.getDefaultWriteParam(); jpgparams.setCompressionMode( javax.imageio.ImageWriteParam.MODE_EXPLICIT ); jpgparams.setCompressionQuality(1); Graphics g = bufferedImage.createGraphics(); g.drawImage(img, 0, 0, null); int w = bufferedImage.getWidth(); int h = bufferedImage.getHeight(); int [] key= {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; int counter=0; for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { //int pixel = bufferedImage.getRGB(j,i); //pixel = pixel^10000; //pixel=pixel+50000; bufferedImage.setRGB(j, i, bufferedImage.getRGB(j,i) ^ key[counter++%10]); } } g.dispose(); File file = new File(inputfileNameWithoutExtension+"-encrypted."+inputFileType); FileImageOutputStream output = new FileImageOutputStream(file); imageWriter.setOutput(output); IIOImage image = new IIOImage(bufferedImage, null, null); imageWriter.write(null, image, jpgparams); imageWriter.dispose(); //ImageIO.write(bufferedImage, inputFileType, new File(inputfileNameWithoutExtension+"-encrypted."+inputFileType)); } } آسف إذا كنت وضعت الموضوع في قسمه غير المناسب أو أنه لا يستحق أن يُفرد في موضوع منفصل، و لكني أحسست بأنها مشكلة غير اعتيادية و لا أحسب حلها بديهيا أو مبسّطا. و شكرا،