簡體   English   中英

DecodeBase64使用apache commons

[英]DecodeBase64 using apache commons

我使用java類CryptoSHA1BASE64.java將純文本加密到sha1Base64密鑰

字符串結果= CryptoSHA1BASE64.hash(text);

類的代碼 - CryptoSHA1BASE64.java是

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import javax.servlet.ServletException;

public final class CryptoSHA1BASE64 {
  public static String hash(String plaintext) throws ServletException {
    MessageDigest md = null;

    try {
      md = MessageDigest.getInstance("SHA"); // SHA-1 generator instance
    } catch (NoSuchAlgorithmException e) {
      throw new ServletException(e.getMessage());
    }

    try {
      md.update(plaintext.getBytes("UTF-8")); // Message summary
      // generation
    } catch (UnsupportedEncodingException e) {
      throw new ServletException(e.getMessage());
    }

    byte raw[] = md.digest(); // Message summary reception
    try {
      String hash = new String(org.apache.commons.codec.binary.Base64.encodeBase64(raw), "UTF-8");
      return hash;
    } catch (UnsupportedEncodingException use) {
      throw new ServletException(use);
    }
  }
}

我想將生成的密鑰解密回純文本,我嘗試了相同的方法,即apache commons的解密方法 -

Base64.decodeBase64(鑰匙)

但是,我提出一些奇怪的字符而不是純文本。 任何建議/意見都會有很大幫助。 謝謝!!!

散列算法是一種方法。 您無法取消刪除字符串以獲取原始文本。 這就是為什么這些算法在存儲在數據庫中之前用於密碼的原因,因此即使數據庫被黑客攻擊,也無法獲得原始文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM