2016-11-24 3 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

Вы можете сделать это с помощью base64 Lib, сначала нужно импортировать его как

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

А затем изменить свой класс, чтобы использовать класс BASE64. здесь несколько примеров кода:

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)); 
Смежные вопросы