2016-08-12 2 views
1

PHP 함수가 있습니다. 이 코드는 암호를 암호화하는 것입니다.PHP pack() 함수에 해당하는 Java

Java 코드에서이 코드를 어떻게 작성할 수 있는지 알고 있습니까?

내가 시도했지만 시도해 본 결과가 없습니다. 도움

편집에 대한

byte[] rawSHA = null; 
    byte[] base64HexSHA = null; 
    MessageDigest md= null; 

    try { 
     md = MessageDigest.getInstance("MD5"); 
    } catch (NoSuchAlgorithmException e) { 
     LOG.error("Unable to load MD5 Message Digest : " + e.getMessage(), e); 
     throw new IllegalStateException("MD5 Message Digest Instance Not Found"); 
    } 


    rawSHA = md.digest(rawText.getBytes("UTF-8")); 
    base64HexSHA = Base64.encodeBase64(rawSHA); 
    System.out.println("result = "+base64HexSHA); 

감사 : 나는 base64로 라이브러리이 도움이

import org.apache.tomcat.util.codec.binary.Base64; 
+3

을 - 좀 더 자세히 설명해주세요. 당신은 무엇을 시도 했습니까? 당신은 무엇을 기대했고 무엇을 얻었습니까? 하나의 라이브러리를 제공하는 여러 라이브러리가 있으므로 사용중인'Base64' 클래스도 정의하십시오. 'java.util.Base64'와 같이 보이지 않습니다. – Thomas

답변

0

나는이 문제를 해결했다. 이것은 다른 사람들에게 도움이 될 수 있습니다.

String ps="tes"; 
    MessageDigest md = MessageDigest.getInstance("MD5"); 
    byte[] encryptedPassword = md.digest(ps.getBytes()); 
    byte[] encodedBytes = Base64.encodeBase64(encryptedPassword); 
    String Str2 = new String(encodedBytes); 

나에게 결과를 제공합니다 ".하지만 그나마 내가 될 줄"

before =tes 
after :KLZi2IO212/Zbk3cXpungA 
0
String someString = "qwe"; 
MessageDigest messageDigest = MessageDigest.getInstance("MD5"); 
String checksum = new BigInteger(1, messageDigest.digest(someString.getBytes())).toString(16); 
System.out.println(checksum); 

희망이를 사용 ... :)

+0

입력 = [12345abc]을 시도합니다. 이 결과 : 귀하의 코드에서 [185aef3b1c810799a6be8314abf6512c], 위의 PHP 함수에서 [GFrvOxyBB5mmvoMUq/ZRLA] – amor

+0

'185aef3b1c810799a6be8314abf6512c' 값이 올바른지'12345abc '입력 용으로 올바른지 확인하십시오. outout을 MD % 나 메소드 md5_base64 ($ txt)의 리턴 값과 비교하고 있습니까? – zombie

+0

예이 MD5 암호화와 맞습니다. 하지만 위의 PHP 함수는 MD5 암호화로 입력 텍스트를 암호화하는 것이 아닙니다. 내부에 문자열 및 팩 기능을 바꿉니다. – amor