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

ارجو المساعدة في كود تشفير وفك التشفير

مغلقمُجاب
بدأه رويا في 2 نوفمبر 2013 · 4 رد · 1,303 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم والرحمه

 

 

مطلوب مني كود تشفير وفك التشفير في الجامعة ب اي لغة وعن طريق البحث بالنت

بشرط التطبيق يطلع صحيح

 

جمعت اكواد وقمت بتجريبهم ..

 

مثال :

 

اقتباس

 

package a;

public class java {

    

        import javax.crypto.Cipher;
        import javax.crypto.spec.SecretKeySpec;

        import org.apache.commons.cli.CommandLine;
        import org.apache.commons.cli.CommandLineParser;
        import org.apache.commons.cli.HelpFormatter;
        import org.apache.commons.cli.Option;
        import org.apache.commons.cli.Options;
        import org.apache.commons.cli.PosixParser;
        import org.apache.commons.codec.binary.Base64;
        import org.apache.commons.logging.Log;
        import org.apache.commons.logging.LogFactory;

        public class CipherUtils
        {

            static Log log = LogFactory.getLog(CipherUtils.class);

            private static byte[] key = {
                    0x74, 0x68, 0x69, 0x73, 0x49, 0x73, 0x41, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79
            };//"thisIsASecretKey";

            public static String encrypt(String strToEncrypt)
            {
                try
                {
                    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
                    final SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
                    cipher.init(Cipher.ENCRYPT_MODE, secretKey);
                    final String encryptedString = Base64.encodeBase64String(cipher.doFinal(strToEncrypt.getBytes()));
                    return encryptedString;
                }
                catch (Exception e)
                {
                    log.error("Error while encrypting", e);
                }
                return null;

            }

            public static String decrypt(String strToDecrypt)
            {
                try
                {
                    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
                    final SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
                    cipher.init(Cipher.DECRYPT_MODE, secretKey);
                    final String decryptedString = new String(cipher.doFinal(Base64.decodeBase64(strToDecrypt)));
                    return decryptedString;
                }
                catch (Exception e)
                {
                    log.error("Error while decrypting", e);

                }
                return null;
            }


            public static void main(String args[])
            {

                CommandLineParser parser = new PosixParser();
                Options options = new Options();
                Option help = new Option("help", "Display help");
                Option encrypt = new Option("encrypt", true, " - string to encrypt");
                Option decrypt = new Option("decrypt", true, " - string to decrypt");
                options.addOption(help);
                options.addOption(encrypt);
                options.addOption(decrypt);
                try
                {
                    CommandLine cmd = parser.parse(options, args);
                    if (cmd.hasOption("encrypt"))
                    {
                        final String strToEncrypt = cmd.getOptionValue("encrypt");
                        final String encryptedStr = CipherUtils.encrypt(strToEncrypt.trim());
                        System.out.println("String to Encrypt : " + strToEncrypt);
                        System.out.println("Encrypted : " + encryptedStr);
                    }
                    else if (cmd.hasOption("decrypt"))
                    {
                        final String strToDecrypt = cmd.getOptionValue("decrypt");
                        final String decryptedStr = CipherUtils.decrypt(strToDecrypt.trim());
                        System.out.println("String To Decrypt : " + strToDecrypt);
                        System.out.println("Decrypted : " + decryptedStr);
                    }
                    else
                    {
                        HelpFormatter formatter = new HelpFormatter();
                        formatter.printHelp("[-h] [-encrypt ]", options);
                    }
                }
                catch (Exception e)
                {
                    log.error("Error while parsing command ", e);
                }

            }
        }
    }

}
 

 

 

شغلته ببرنامج الـ eclips

لكن يطلع ايرور يمنع تشغيله

Error: Could not find or load main class a.EncryptDecryptStringWithDES

 

وفي كل كود اجربه يطلع نفس الإيرور

 

ايش المشكله بالضبط جزاكم الله خير :(

#2 أفضل إجابة

تفضلي :

import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import java.security.spec.KeySpec;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;

public class EncryptionTest {

    private static final String UNICODE_FORMAT = "UTF8";
    public static final String DESEDE_ENCRYPTION_SCHEME = "DESede";
    private KeySpec ks;
    private SecretKeyFactory skf;
    private Cipher cipher;
    byte[] arrayBytes;
    private String myEncryptionKey;
    private String myEncryptionScheme;
    SecretKey key;

    public EncryptionTest() throws Exception {
        myEncryptionKey = "ThisIsSpartaThisIsSparta";
        myEncryptionScheme = DESEDE_ENCRYPTION_SCHEME;
        arrayBytes = myEncryptionKey.getBytes(UNICODE_FORMAT);
        ks = new DESedeKeySpec(arrayBytes);
        skf = SecretKeyFactory.getInstance(myEncryptionScheme);
        cipher = Cipher.getInstance(myEncryptionScheme);
        key = skf.generateSecret(ks);
    }

    public String encrypt(String unencryptedString) {
        String encryptedString = null;
        try {
            cipher.init(Cipher.ENCRYPT_MODE, key);
            byte[] plainText = unencryptedString.getBytes(UNICODE_FORMAT);
            byte[] encryptedText = cipher.doFinal(plainText);
            encryptedString = Base64.encode(encryptedText);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return encryptedString;
    }

    public String decrypt(String encryptedString) {
        String decryptedText = null;
        try {
            cipher.init(Cipher.DECRYPT_MODE, key);
            byte[] encryptedText = Base64.decode(encryptedString);
            byte[] plainText = cipher.doFinal(encryptedText);
            decryptedText = new String(plainText);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return decryptedText;
    }

    public static void main(String args[]) throws Exception {
        EncryptionTest td = new EncryptionTest();

        String target = "ArabTeam2000.com";
        String encrypted = td.encrypt(target);
        String decrypted = td.decrypt(encrypted);

        System.out.println("String To Encrypt : " + target);
        System.out.println("Encrypted String : " + encrypted);
        System.out.println("Decrypted String : " + decrypted);

    }
}

المُخرجات :

String To Encrypt : ArabTeam2000.com
Encrypted String : 0lt8f+Q4wpB//5T6x2wJ5oklKlCX19Qm
Decrypted String : ArabTeam2000.com

بالتوفيق.

1
#3

جزاك الله الجنة ()

 

بس واجهتني مشكلة .. رغم اني الخطوات إللي نفذتها :

إنشاء بروجكت جافا ثم أنشئت كلاس ثم وضعت الكود

ف طلع لي هذا الأيرور ,

 

lyFwS.png

 

ماأدري هل طريقتي في الإنشاء غلط !

" أعتذر لك لكن أبداً ماعندي فكرة عن لغة الجافا للأسف ! "

ثانياً : لو سمحت بـ أي طرق التشفير هذا الكود مثلاً الـ DES أو RC4 أو أو ..... !

 

 

وجزاك ربي كل خير والله يفرج لك دنيا واخره

#4
اقتباس

بس واجهتني مشكلة .. رغم اني الخطوات إللي نفذتها :

إنشاء بروجكت جافا ثم أنشئت كلاس ثم وضعت الكود

ف طلع لي هذا الأيرور ,

 

هل يمكنك إنشاء و تنفيذ كلاس عادي ؟

إذا كان الجواب نعم (و هو ما أعتقده) فالمشكلة ليست من الكود و إنما هي من إعداد المترجم لديك, لذا ضعي سؤالك في موضوع جديد و إن شاء الله ستجدين الإجابة.

 

 

اقتباس
لو سمحت بـ أي طرق التشفير هذا الكود مثلاً الـ DES أو RC4 أو أو ..... !

 

 

الخوارزمية المستخدمة في التشفير هي Triple DES.

 

 

اقتباس
أعتذر لك لكن أبداً ماعندي فكرة عن لغة الجافا للأسف !

 

إذا كان الحال هكذا فالأولى بك هو التركيز على أولويات الجافا بدلا من التشفير او ما شابه !!

#5

جزاك الله عني خير الجزاء

وراح احاول جاهده اني اتعلم لغة الجافا

رغم ان دراستي في الجامعه مافيه اي ماده مختصه بـ لغة الجافا :)

شكراً جزيلاً

هذا الموضوع مغلق.

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