fix decrypt password

This commit is contained in:
dirgantarasiahaan
2023-05-28 17:36:28 +07:00
parent cab86cf8fa
commit c93f666056
77 changed files with 405 additions and 129 deletions

View File

@ -6,11 +6,11 @@ public class Constants {
public static final String ERR_CODE_10001 = "10001";
public static final String ERR_TTL_10001 = "Data tidak ditemukan";
public static final String ERR_MSG_10001 = "Jenis Anggaran dengan id : %s tidak ditemukan";
public static final String ERR_MSG_10001 = "%s dengan id : %s tidak ditemukan";
public static final String ERR_CODE_10002 = "10002";
public static final String ERR_TTL_10002 = "Data tersedia";
public static final String ERR_MSG_10002 = "Jenis Anggaran : %s sudah tersedia";
public static final String ERR_MSG_10002 = "%s : %s sudah tersedia";
public static final String ERR_CODE_10003 = "10003";
public static final String ERR_TTL_10003 = "Data tidak tersedia";
@ -28,6 +28,22 @@ public class Constants {
public static final String ERR_TTL_10006 = "Data tersedia";
public static final String ERR_MSG_10006 = "Role : %s sudah tersedia";
public static final String ERR_CODE_10007 = "10007";
public static final String ERR_TTL_10007 = "Proses Gagal";
public static final String ERR_MSG_10007 = "Silahkan periksa kembali password baru yg anda input";
public static final String ERR_CODE_10008 = "10008";
public static final String ERR_TTL_10008 = "Proses Gagal";
public static final String ERR_MSG_10008 = "Gagal generate token";
public static final String ERR_CODE_10009 = "10009";
public static final String ERR_TTL_10009 = "Proses Gagal";
public static final String ERR_MSG_10009 = "Periksa kembali password sekrang anda";
public static final String ERR_CODE_10010 = "10010";
public static final String ERR_TTL_10010 = "Proses Gagal";
public static final String ERR_MSG_10010 = "Gagal decrypt password, masukkan password yg ter-encrypt";
public static final String ERR_CODE_40041 = "40041";
public static final String ERR_TTL_40041 = "Terjadi Gangguan";
public static final String ERR_MSG_40041 = "Masalah Koneksi System";
@ -35,6 +51,22 @@ public class Constants {
public static final String ERR_CODE_40051 = "40051";
public static final String ERR_CODE_80007 = "80007";
public static final String TITLE_INVALID_NEXT_STEP = "Proses tidak dapat dilanjutkan";
public static final String REFRESH_TOKEN_EXPIRED = "Refresh token expired";
public static final String REFRESH_TOKEN_NOT_VALID = "Refresh token tidak valid";
public static final String ERR_CODE_40042 = "40042";
public static final String ERR_TTL_40042 = "Terjadi gangguan";
public static final String ERR_MSG_40042 = "Proses generate token gagal dengan response: null";
public static final String ERR_CODE_40038 = "40038";
public static final String ERR_TITLE_40038 = "Data Sedang Tidak Tersedia";
public static final String ERR_MESSAGE_40038 = "Data User Tidak Ditemukan.";
public static final String ERR_CODE_80000 = "80000";
public static final String N0_SUCH_ALGORITHM_EXCEPTION = "NoSuchAlgorithmException : ";
public static final String N0_SUCH_PADDING_EXCEPTION = "NoSuchPaddingException : ";
public static final String INVALID_KEY_EXCEPTION = "InvalidKeyException : ";
public static final String ILEGAL_BLOCK_SIZE_EXCEPTION = "IllegalBlockSizeException : ";
public static final String BAD_PADDING_EXCEPTION = "BadPaddingException : ";
}

View File

@ -0,0 +1,52 @@
package com.iconplus.smartproc.util;
import com.iconplus.smartproc.exception.TechnicalException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.util.Base64;
public class EncryptDecryptUtils {
private static final Logger log = LogManager.getLogger(EncryptDecryptUtils.class);
private EncryptDecryptUtils() {
}
public static String decrypt(String data, String base64PrivateKey) {
return decryptChipper(Base64.getDecoder().decode(data.getBytes()), RSAUtil.getPrivateKey(base64PrivateKey));
}
private static String decryptChipper(byte[] data, PrivateKey privateKey) {
var result = "";
try {
var cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");
cipher.init(2, privateKey);
result = new String(cipher.doFinal(data));
} catch (NoSuchAlgorithmException var3) {
log.error("NoSuchAlgorithmException : {}", var3.getMessage());
throw new TechnicalException(Constants.ERR_CODE_80000, Constants.N0_SUCH_ALGORITHM_EXCEPTION + var3.getMessage());
} catch (NoSuchPaddingException var4) {
log.error("NoSuchPaddingException : {}", var4.getMessage());
throw new TechnicalException(Constants.ERR_CODE_80000, Constants.N0_SUCH_PADDING_EXCEPTION + var4.getMessage());
} catch (InvalidKeyException var5) {
log.error("InvalidKeyException : {}", var5.getMessage());
throw new TechnicalException(Constants.ERR_CODE_80000, Constants.INVALID_KEY_EXCEPTION + var5.getMessage());
} catch (IllegalBlockSizeException var6) {
log.error("IllegalBlockSizeException : {}", var6.getMessage());
throw new TechnicalException(Constants.ERR_CODE_80000, Constants.ILEGAL_BLOCK_SIZE_EXCEPTION + var6.getMessage());
} catch (BadPaddingException var7) {
log.error("BadPaddingException : {}", var7.getMessage());
throw new TechnicalException(Constants.ERR_CODE_80000, Constants.BAD_PADDING_EXCEPTION + var7.getMessage());
}
return result;
}
}