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

كود جافا لبرنامج MD5

بدأه who me في 16 أبريل 2010 · 7 رد · 1,336 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

هذا كود جافا لبرنامج MD5 فكرة البرنامج انو اقرا من ملف المسج واعمل تشفير واكتب التشفير في ملف ثاني

طبعا كالعاده طلعلي خطأ بس هالمره ما عرفت كيف احل خطأي ئ

فلو سمحتم تشرحوليلي ايش معنى هذا الخطأ

unreported exception java.io.IOException; must be caught or declared to be thrown

وجزاكم الله عني كل خير :happy:

import javax.crypto.*;

import java.security.*;

import java.io.*;

public class MD5 {

public static void main(String[] args)throws Exception {

// read text from MD file

FileInputStream f =new FileInputStream("MD.txt");

DataInputStream d =new DataInputStream (f);

InputStreamReader I= new InputStreamReader (d);

BufferedReader b=new BufferedReader(I);

//

String s=new String();

s=b.readLine();

byte [] data1=s.getBytes();

//

MessageDigest md=MessageDigest.getInstance("MD5");

md.update(data1);

byte[] msgDigest=md.digest();

printA(msgDigest);

}

public static void printA(byte[] str){

System.out.println(new String(str));

FileWriter f0 = new FileWriter("MDout.txt");

int i;

for(i=0;i<str.length;i++)

{f0.write(str); }

f0.close();

// System.out.println("\n THe outputsize is :"+i+"\n");

}

}

#2

يرجى إحاطة الكود في المرة القادمة بوسمي code لكي يظهر بشكل أفضل

يمكنك من قرائة رسالة الخطأ استنتاج أن هناك استثناء عليك إلتقاطه

إن لم تكن تعرف ماذا يعني استثناء exception قم بالبحث عن شرح له في المنتدى

أظن أنك تريد تخزين الـ Hash الناتج على شكل ترميز hex في الملف الثاني

هذا هو الكود الكامل:

import java.security.*;
import java.io.*;
import java.math.BigInteger;

public class md5 {

    public static void main(String[] args) throws Exception {
        FileInputStream f = new FileInputStream("MD.txt");
        DataInputStream d = new DataInputStream(f);
        InputStreamReader I = new InputStreamReader(d);
        BufferedReader b = new BufferedReader(I);
        String s = b.readLine();
        MessageDigest m = MessageDigest.getInstance("MD5");
        m.update(s.getBytes(), 0, s.length());
        String md5HexStr = new BigInteger(1, m.digest()).toString(16);
        printA(md5HexStr);
    }

    public static void printA(String str) {
        System.out.println(str);
        try {
            FileWriter f0 = new FileWriter("MDout.txt");
            int i;
            f0.write(str);
            f0.close();
        } catch (IOException e) {
        }
    }
}
#3

مشـــــــــــــكور ع المرور

المفروض اللي يتخزن في الملف الثاني هذا الoutput

ق³·H·a;فëھ ّ«تق

-34 -77 -73 72 -73 97 59 -35 29 -21 -86 -96 -8 -85 -54 -34

وما اعرف اذا كان اسمه hex

وانت مستخدم اشياءفي الكود ما فهمتها وابغا اسأل اقدر استغني عنها او هي ضروريه لازم تكون في الكــــــــــــود

والجمل اللي لونتها بالاحمر هو اللي كان يوقف عليها المؤشر

وجزاك الله خير وزادك بسطة في العلم

#4
اقتباس
المفروض اللي يتخزن في الملف الثاني هذا الoutput

ق³·H·a;فëھ ّ«تق

-34 -77 -73 72 -73 97 59 -35 29 -21 -86 -96 -8 -85 -54 -34

وما اعرف اذا كان اسمه hex

هذا يعتمد على متحوى الملف الأول !!

إذاً تريد تخزينه على شكل بايتات وليس على شكل سلسلة نصية

قم بتعديله إلى ما يلي:

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.MessageDigest;

public class md5 {

    public static void main(String[] args) throws Exception {
        FileInputStream f = new FileInputStream("MD.txt");
        DataInputStream d = new DataInputStream(f);
        InputStreamReader I = new InputStreamReader(d);
        BufferedReader b = new BufferedReader(I);
        String s = b.readLine();
        MessageDigest m = MessageDigest.getInstance("MD5");
        m.update(s.getBytes(), 0, s.length());
        printA(m.digest());
    }
    public static void printA(byte[] str) {
        System.out.println(str);
        try {
            FileWriter f0 = new FileWriter("MDout.txt");
            int i;
            for (i = 0; i < str.length; i++) {
                f0.write(str);
            }
            f0.close();
        } catch (IOException e) {
        }
    }
}
#5

جزاك الله خير اشتغل الكود بس كنت ابغا اعرف ايش الفايده من try وcatch

#6

لمعالجة الإستثناءات exception handling.

الإستثناءات هي من أساسيات البرمجة في الجافا ::: http://www.arabteam2...howtopic=124883

تم تعديل هذه المشاركة بواسطة JustPassing في 16 أبريل 2010 في 20:15

#7

ما دخل الملفات ؟

#8

مشكور ع الرابط مره استفدت منه

الله يعطيكم العافيه جميعا

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