// uniCenta oPOS - Touch Friendly Point Of Sale // Copyright (c) 2009-2013 uniCenta // http://www.unicenta.net/unicentaopos // // This file is part of uniCenta oPOS // // uniCenta oPOS is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // uniCenta oPOS is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with uniCenta oPOS. If not, see <http://www.gnu.org/licenses/>. package com.openbravo.pos.util; import java.io.UnsupportedEncodingException; import java.security.*; import javax.crypto.*; public class AltEncrypter { private Cipher cipherDecrypt; private Cipher cipherEncrypt; /** Creates a new instance of Encrypter */ public AltEncrypter(String passPhrase) { try { SecureRandom sr = SecureRandom.getInstance("SHA1PRNG"); sr.setSeed(passPhrase.getBytes("UTF8")); KeyGenerator kGen = KeyGenerator.getInstance("DESEDE"); kGen.init(168, sr); Key key = kGen.generateKey(); cipherEncrypt = Cipher.getInstance("DESEDE/ECB/PKCS5Padding"); cipherEncrypt.init(Cipher.ENCRYPT_MODE, key); cipherDecrypt = Cipher.getInstance("DESEDE/ECB/PKCS5Padding"); cipherDecrypt.init(Cipher.DECRYPT_MODE, key); // } catch (UnsupportedEncodingException e) { // JG 1 Oct 13 - use multicatch // } catch (NoSuchPaddingException e) { // } catch (NoSuchAlgorithmException e) { // } catch (InvalidKeyException e) { } catch (UnsupportedEncodingException | NoSuchPaddingException | NoSuchAlgorithmException | InvalidKeyException e) { } } public String encrypt(String str) { try { return StringUtils.byte2hex(cipherEncrypt.doFinal(str.getBytes("UTF8"))); } catch (UnsupportedEncodingException | BadPaddingException | IllegalBlockSizeException e) { // } catch (UnsupportedEncodingException e) { // JG 1 Oct 13 - use multicatch // } catch (BadPaddingException e) { // } catch (IllegalBlockSizeException e) { } return null; } public String decrypt(String str) { try { return new String(cipherDecrypt.doFinal(StringUtils.hex2byte(str)), "UTF8"); } catch (UnsupportedEncodingException | BadPaddingException | IllegalBlockSizeException e) { // } catch (UnsupportedEncodingException e) { // JG 1 Oct 13 - use multicatch // } catch (BadPaddingException e) { // } catch (IllegalBlockSizeException e) { } return null; } }