في كثير من الأحيان ، يلزم التشفير المستمر للتشفير السري ، ويستخدم التشفير في هذا الوقت MD5. عند استخدام التشفير المتماثل ، يتم استخدام طريقة DES
استيراد java.ioexception ؛ "؛ السلسلة الثابتة النهائية الخاصة md =" md "؛ key private final static string =" opeddsaeadddbcabf "؛ / ** * md خوارزمية التشفير * param data * @return * / public stic string mdencrypt (بيانات سلسلة) { ResultString = null. النتائج xff) <x) {bf.append ("t") ؛ إلى قيمة المفتاح * param data * param مفتاح تشفير مفتاح byte صفيف * regurn * @throws استثناء */ سلسلة ثابتة static static desencrypt (بيانات السلسلة ، مفتاح السلسلة) يلقي الاستثناء {if (key == null) {key = key ؛ } byte [] bt = encrypt (data.getBytes () ، key.getBytes () ؛ param data * @param مفتاح مفتاح تشفير مفتاح صفيف بايت * return * throws ioException * @Throws استثناء */ سلسلة ثابتة عامة desdecrypt (بيانات السلسلة ، مفتاح السلسلة) يلقي IOEXC حلقة ، استثناء {if (data == null) {return null) ؛ ) ؛ ] D ATA ، مفتاح BYTE) يلقي الاستثناء {// إنشاء مصدر عشوائي موثوق به SRANDOM SR = NEW SECURERANDOM () ؛ إنشاء مصنع رئيسي ، ثم استخدمه لتحويل DeskeySpec إلى SecretKey SecretKeyFactory = SecretKeyFactory.GetInstance (DES) ؛ cipher.getinstance (des) ؛ Param Data * @param مفتاح تشفير مفتاح Byte Array * Return * @Throws استثناء */ بايت ثابت خاص [] decrypt (byte [] data ، byte [] key) يرمي الاستثناء {// إنشاء رقم عشوائي موثوق securerandom sr = SEC urerandom () جديد ؛ des) ؛ ) ؛أدناه سأقدم جزءًا من الكود لتنفيذ فئات تشفير MD5 وفك التشفير في Java
تقوم Java بتنفيذ فئات تشفير MD5 وفك التشفير ، مع فئات الاختبار ، راجع الكود للحصول على التفاصيل.
MD5 تشفير وفئة فك التشفير - MyMD5UTIL ، الرمز كما يلي:
Package Com.zyg.md5 ؛ Static Final String HEX_NUMS_STR = "0123456789ABCDEF" ؛ = (Hex.Length () / 2) ؛ POS = I * 2 ؛ قم بتحويل صفيف البايت المحدد إلى سلسلة hex * param b * @regring */ public static string bytetoHexstring (byte [] b) {stringbuffer hexstring = new StringBuffer () ؛ i ++) {string hex = integer.toHexString (b [i] & 0xff) ؛ ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::::: * param passwordIndb * REGRURN * throws nosuchalgorithmexception * @rewors UnsupportedEncodingException */public static boolean valepassword (سلسلة كلمة مرور ، كلمة مرور). HexstringTobyte (كلمة المرور indb) ) ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::: : يتم تمرير بيانات الملح في كائن Mession Md.update (Salt) ؛ من إدخال كلمة مرور [] Digest = Md.Digest () ؛ Message Message of the Password في نظام قاعدة البيانات. arrays.equals (Digest ، DigestIndb) {// تُرجع كلمة المرور رسالة مرحلة ما يعادل كلمة المرور بشكل صحيح ؛ كلمة مرور hexadecimal * param password * return * throws nosuchalgorithm * throws UnsupportedEncodingException * /string static public getencryptedpwd (سلسلة كلمة مرور) armoved array armain [] رقم العدد العشوائي Securerandom = New SecurerAndom () ؛ كائن MessageDigest = NULL. كائن md.update (password.getBytes ("UTF-8") كلمة المرور ، أضف طول البايت للملح PWD = New Byte [Digest.Length + Salt_Length] ، 0 ، pwd ، 0 ، salt_length) ؛ كلمة مرور البايت المشفرة إلى كلمة مرور إرجاع BYTETOHEXSTRING (PWD) ؛فئة الاختبار - العميل ، الرمز كما يلي:
Package Com.zyg.md5 ؛ ؛ ) ؛ ou t. / todo acto catch block e.printstacktrace () ؛ جرب {incryptedpwd = mymd5util. / todo catch block e.printstacktrace () اسم المستخدم ، كلمة مرور) يلقي nosuchalgorithmexception ، غير مدعوم {string pwdindb = (string) user.get (username) ؛ System.out.println ("غير موجود هذا المستخدم! ! ! ") ؛ إرجاع خطأ ؛}}}