0

I am using a java class CryptoSHA1BASE64.java to encrypt a plain text to sha1Base64 key

String result = CryptoSHA1BASE64.hash(text);

The code of the class - CryptoSHA1BASE64.java is

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);
    }
  }
}

I want to decrypt the generated key back to plain text, i tried same approach i.e., the decrypt method of apache commons -

Base64.decodeBase64(key)

But, I gest some weird character instead of plain text. Any suggestions/comments would be of great help. Thanks!!!

3
  • The encoding part is something which i cannot change due to some restrictions, so looking for solution to decode the UTF-8 encoding Commented Dec 20, 2013 at 4:48
  • 1
    possible duplicate, stackoverflow.com/questions/3479067/… Commented Dec 20, 2013 at 4:49
  • It can't be done. See @ezzadeen for the answer. Commented Dec 20, 2013 at 21:02

1 Answer 1

2

Hashing algorithms are one way. You can't undigest the string to get the original text. That is why these algorithms are used for passwords before they are stored in a database for example, so that even if the database is hacked, you can't get the original text.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.