Android编程加密算法小结(AES、Base64、RAS加密算法)

2019-12-10 19:52:17丽君
  • import java.security.PrivateKey;   import java.security.PublicKey;  
  • import java.security.interfaces.RSAPrivateKey;   import java.security.interfaces.RSAPublicKey;  
  • import java.security.spec.PKCS8EncodedKeySpec;   import java.security.spec.X509EncodedKeySpec;  
  • import javax.crypto.Cipher;   import sun.misc.BASE64Decoder;  
  • import sun.misc.BASE64Encoder;   public class RSAHelper {  
  • public static PublicKey getPublicKey(String key) throws Exception {   byte[] keyBytes;  
  • keyBytes = (new BASE64Decoder()).decodeBuffer(key);   X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);  
  • KeyFactory keyFactory = KeyFactory.getInstance("RSA");   PublicKey publicKey = keyFactory.generatePublic(keySpec);  
  • return publicKey;   }  
  • public static PrivateKey getPrivateKey(String key) throws Exception {   byte[] keyBytes;  
  • keyBytes = (new BASE64Decoder()).decodeBuffer(key);   PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);  
  • KeyFactory keyFactory = KeyFactory.getInstance("RSA");   PrivateKey privateKey = keyFactory.generatePrivate(keySpec);  
  • return privateKey;   }  
  • public static String getKeyString(Key key) throws Exception {   byte[] keyBytes = key.getEncoded();  
  • String s = (new BASE64Encoder()).encode(keyBytes);   return s;  
  • }   public static void main(String[] args) throws Exception {  
  • KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");   //密钥位数  
  • keyPairGen.initialize(1024);   //密钥对  
  • KeyPair keyPair = keyPairGen.generateKeyPair();   // 公钥  
  • PublicKey publicKey = (RSAPublicKey) keyPair.getPublic();   // 私钥  
  • PrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();   String publicKeyString = getKeyString(publicKey);