java RSA加密解密
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import javax.crypto.Cipher;
import org.apache.commons.codec.binary.Base64;
import org.springframework.stereotype.Component;
@Component
public class RSA{
private String remotePublicKey="";
private String nativePrivateKey="";
public String encrypt(String respones){
try {
Cipher cipher=Cipher.getInstance("RSA");
byte[] keyBytes=Base64.decodeBase64(remotePublicKey);
X509EncodedKeySpec keySpec=new X509EncodedKeySpec(keyBytes);
KeyFactory keyFactory=KeyFactory.getInstance("RSA");
PublicKey key=keyFactory.generatePublic(keySpec);
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] bytes=cipher.doFinal(respones.getBytes());
String s= Base64.encodeBase64String(bytes);
return s;
} catch (Exception e) {
e.printStackTrace();
return "RSA加密错误.";
}
}
public String decrypt(String respones){
try {
byte[] content=respones.getBytes();
Cipher cipher=Cipher.getInstance("RSA");
byte[ ] keyBytes=Base64.decodeBase64(nativePrivateKey);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory keyFactory=KeyFactory.getInstance("RSA");
PrivateKey key= keyFactory.generatePrivate(keySpec);
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] responseByte=cipher.doFinal(Base64.decodeBase64(content));
String s=new String(responseByte);
return s;
} catch (Exception e) {
return "RSA解密错误";
}
}
}