Skip to content

Instantly share code, notes, and snippets.

@Anass-ABEA
Created July 25, 2021 00:35
Show Gist options
  • Save Anass-ABEA/027933a7bf868854d32b2c3306bce7f5 to your computer and use it in GitHub Desktop.
Save Anass-ABEA/027933a7bf868854d32b2c3306bce7f5 to your computer and use it in GitHub Desktop.
RSA Encryption Manager from a String public key
package com.thexcoders.RSA_server;
import javax.crypto.Cipher;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.X509EncodedKeySpec;
import java.util.Base64;
public class EncryptionManager {
private PublicKey publicKey;
private static final String PUBLIC_KEY_STRING = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYQYM3FwZuQNLK7xRbuBbAcviy1vl9LB//Ubz+NFSBjgrrGNPwqgOuWF1qskBOY0AnoAZpwHlWEryvtz1OGNX5q9boqrhOrGQebJfek9JGvjysz3+KCqAIup8C1Enp4+cUxYy7BRorjF6wqTAjyJn/SQVZPPUyVeN17Nw0jSqI9QIDAQAB";
public void initFromStrings(){
try{
X509EncodedKeySpec keySpecPublic = new X509EncodedKeySpec(decode(PUBLIC_KEY_STRING));
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
publicKey = keyFactory.generatePublic(keySpecPublic);
}catch (Exception ignored){}
}
private static String encode(byte[] data) {
return Base64.getEncoder().encodeToString(data);
}
private static byte[] decode(String data) {
return Base64.getDecoder().decode(data);
}
public String encrypt(String message) throws Exception {
byte[] messageToBytes = message.getBytes();
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedBytes = cipher.doFinal(messageToBytes);
return encode(encryptedBytes);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment