需求 :用户登录时候将密码通过rsa非对称加密,使用公钥加密后传给后台,后台使用私钥解密:
我在网上找了一个现成的rsa工具类
public class RsaUtils { //构建Cipher实例时所传入的的字符串,默认为"RSA/NONE/PKCS1Padding" private static String sTransform = "RSA/None/PKCS1Padding"; //进行Base64转码时的flag设置,默认为Base64.DEFAULT private static int sBase64Mode = Base64.DEFAULT; //初始化方法,设置参数 public static void init(String transform,int base64Mode){ sTransform = transform; sBase64Mode = base64Mode; } /* 产生密钥对 @param keyLength 密钥长度,小于1024长度的密钥已经被证实是不安全的,通常设置为1024或者2048,建议2048 */ public static KeyPair generateRSAKeyPair(int keyLength){ KeyPair keyPair = null; try { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); //设置密钥长度 keyPairGenerator.initialize(keyLength); //产生密钥对 keyPair = keyPairGenerator.generateKeyPair(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return keyPair; } /* 加密或解密数据的通用方法 @param srcData 待处理的数据 @param key 公钥或者私钥 @param mode 指定是加密还是