2016-11-24 6 views
-6

誰かがこの作業を行うことはできますか?私は最小のJavaの知識を持っており、プログラムと同じハッシュを通して単語を実行するスクリプトを取得したいと私は同じコードから同様の結果を得ることができるかどうかを確認したい。 Javaは..Javaエラーの修正とユーザー入力の取得

import java.util.List; 

import java.security.MessageDigest; 
/* 
BASIC FORMAT OF WHAT I WOULD LIKE SOMEONE TO FIX 
ONLY WANT TO ENCRYPT VIA THIS METHOD*/ 


public class encrypt { 
    /* WANT TO GET USER-INPUT AND RUN IT THROUGH THIS METHOD OF HASHING*/ 
    String code = array[0]; 
    String encrypted = encrypt(code); 
/*ERRORS SO*/ 
    public static void main(String[] args) { 
     /* WANT TO PRINT OUT RESULT HERE 
     AIM IS TO GET A HASH THAT LOOKS LIKE: 
     "2473511743116990591436219521516221715316", 
      "101208251115150352340242201171221515066157" 
     FROM THE WORD "pizzaroma"*/ 
     System.out.println(encrypted); 
    } 

    /*NO CLUE WHAT THIS DOES ^^^^ Array?*/ 
    private String getString(byte[] bytes) { 
     StringBuffer sb = new StringBuffer(); 
     for (int i = 0; i < bytes.length; i++) { 
      byte b = bytes[i]; 
      sb.append(0xFF & b); 
     } 
     return sb.toString(); 
    } 

    public String encrypt(String source) { 
     try { 
      MessageDigest md = MessageDigest.getInstance("MD5"); 
      byte[] bytes = md.digest(source.getBytes()); 
      return getString(bytes); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
} 
    /*FAR:encrypt.java:6:error:cannot find symbol 

     String code=array[0]; 

     symbol:variable array 

     location:*/ 

/* 
class encrypt 

encrypt.java:35:error:non-static variable encrypted cannot be 
     referenced from a static context 

     System.out.println(encrypted);^ 

     2 errors*/ 
+4

まず、コードを適切にインデントしてみてください...そのまま読むことはできません。 – SomeJavaGuy

+0

MD5は暗号化ハッシュ関数であり、暗号化ではありません。 – zaph

答えて

-2

このコードを試してみてください。

import java.security.MessageDigest; 

public class Test { 

    String code = null; 
    String encrypted = null; 

    private String getString(byte[] bytes) { 
     StringBuffer sb = new StringBuffer(); 
     for (int i = 0; i < bytes.length; i++) 
     { 
      byte b = bytes[i]; 
      sb.append(0xFF & b); 
     } 
     return sb.toString(); 
    } 

    public String encrypt(String source) { 
     try { 
      MessageDigest md = MessageDigest.getInstance("MD5"); 
      byte[] bytes = md.digest(source.getBytes()); 
      return getString(bytes); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    public static void main(String args[]) { 

     Test t = new Test(); 
     t.code = "pizzaroma"; 

     t.encrypted = t.encrypt(t.code); 

     System.out.println(t.encrypted); 
    } 
} 
-1

あなたは

import org.apache.commons.codec.binary.Base64; 

のようにそれをインポートしてから、BASE64クラスを使用するようにクラスを変更する必要がまず、base64でLIBの助けを借りてこれを行うことができます。 ここにいくつかのコード例:

byte[] encodedBytes = Base64.encodeBase64("Test".getBytes()); 
System.out.println("encodedBytes " + new String(encodedBytes)); 
byte[] decodedBytes = Base64.decodeBase64(encodedBytes); 
System.out.println("decodedBytes " + new String(decodedBytes)); 
関連する問題