2016-05-28 10 views
-5
public static final String encodeMd5(final String s){ 
     final String MD5 = "MD5"; 
     try { 
      // Create MD5 Hash 
      MessageDigest digest = MessageDigest 
        .getInstance(MD5); 
      digest.update(s.getBytes()); 
      byte messageDigest[] = digest.digest(); 

      // Create Hex String 
      StringBuilder hexString = new StringBuilder(); 
      for (byte aMessageDigest : messageDigest) { 
       String h = Integer.toHexString(0xFF & aMessageDigest); 
       while (h.length() < 2) 
        h = "0" + h; 
       hexString.append(h); 
      } 
      return hexString.toString(); 

     } catch (NoSuchAlgorithmException e) { 
      e.printStackTrace(); 
     } 
     return ""; 
    } 

クライアントが自分のアカウントにログインできるように復号化段階が必要です。クライアントが自分のアカウントにログインできるように復号化段階が必要です

+2

MD5はパスワードをハッシュするのには適していません。検討[PBKDF2](http://stackoverflow.com/questions/11412882/)。 –

+2

MD5は暗号化されていません。 – zaph

+0

あなたは「解読段階」とは何ですか?あなたのために解読を行うコードを意味しますか? EJPによれば、ハッシュされたパスワードを解読する必要はなく(また、試してはいけません)、不可能です。代わりに、入力したパスワードを再ハッシュし、ハッシュを比較する必要があります。詳細については – halfer

答えて

3

あなたはコースであなたを失敗させる基本的な誤解があります。修正する。 MD5は暗号化ではありません。それはハッシュです。それを解読することはできません。あなたはそれを解読する必要はありません。入力したパスワードをMD5にして、それを実際のパスワードのMD5と比較する必要があります。

また、Javaコードではなく、MD5および16進エンコードにデータベース機能を使用することがほぼ確実に予想されます。確かに16進符号化が必要な場合

+0

Thnxを参照してください。しかし、どうすればこれを解決できますか? 私は初心者です、助けてください? –

+1

「あなたは理解していない」という文章のどの部分を理解していますか?あなたはこれをあなた自身で解決することが期待されます。あなたができなければ、卒業する権利はありません。あなたがこれまでに得たことは驚くべきことです。 – EJP

+1

@HaJerあなたは「私は卒業プロジェクトにいる」と言っていますが、「私は初心者です」と言いますか?それは矛盾しているようです。 – zaph

関連する問題