java - 使用 apache commons 解码Base64

标签 java encryption base64 decode

我正在使用 java 类 CryptoSHA1BASE64.java 将纯文本加密为 sha1Base64 key

String result = 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);
    }
  }
}

我想将生成的 key 解密回纯文本,我尝试了相同的方法,即 apache commons 的解密方法 -

Base64.decodeBase64(key)

但是,我得到了一些奇怪的字符而不是纯文本。任何建议/意见都会有很大帮助。谢谢!!!

最佳答案

哈希算法是一种方法。您无法通过取消消化字符串来获取原始文本。这就是为什么在将密码存储到数据库之前使用这些算法,这样即使数据库被黑客攻击,您也无法获取原始文本。

关于java - 使用 apache commons 解码Base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20696408/

相关文章:

java - java中的 keystore 密码加密

PHP Mysql 安全密码

javascript - 在没有 FileReader 的 NodeJS 中 Blob 到 Base64

javascript - python django - 使用解码的 base64 写入时图像为空白

java - 制作 Java EXE

java - Request.getparameter 从输入中丢弃特殊字符

java - 以这种方式使用 booleanValue() 检查 boolean 值是否有效

SSL连接加密协商

java - Base64:java.lang.IllegalArgumentException:非法字符

java - 如果线程已经中断,Thread.sleep 会抛出吗?