3

I have the following Java encryption method, and I'd like to know what the equivalent PHP decryption for it is, if there is one. If there is not an equivalent PHP decryption function for PHP, then what other options do I have? Thanks in advance.

    private String encrypt(String string, String key) {
    StringBuilder enc = new StringBuilder();
    try {
        Mac mac = Mac.getInstance("HMACSHA256");
        SecretKeySpec secret = new SecretKeySpec(key.getBytes(), "HMACSHA256");
        mac.init(secret);
        byte[] digest = mac.doFinal(string.getBytes());
        for (byte b : digest) {
            String hex = Integer.toHexString(0xff & b);
            if (hex.length() == 1)
                enc.append('0');
            enc.append(hex);
        }
    } catch (Exception e) {
    }
    return enc.toString();
}
Hat
  • 540
  • 8
  • 25

2 Answers2

1

SHA algorithms are one way hashes, which means you can never decrypt them.

Pradeep Pati
  • 5,779
  • 3
  • 29
  • 43
0

Just take a look at php.net: http://www.php.net/manual/en/function.hash-hmac.php

An equal method would be

hash_hmac("sha256", $data, $key, false);

And of course its not an encryption, but an hash function. So its non reversible.

luxer
  • 660
  • 5
  • 15
  • Thanks for your answer. Is there an alternative you could suggest to sha256, that is reversible? – Hat Apr 03 '13 at 06:20
  • You have to use an encryption function as already asked in: http://stackoverflow.com/questions/9262109/php-simplest-two-way-encryption – luxer Apr 03 '13 at 06:27