首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

RSA加密界面大量操纵,报错的有关问题

2013-10-28 
RSA加密界面大量操纵,报错的问题public String encrypt(String publicKeystore, String plainText) {try {

RSA加密界面大量操纵,报错的问题
public String encrypt(String publicKeystore, String plainText) {
try {
FileReader fr = new FileReader(publicKeystore);
BufferedReader br = new BufferedReader(fr);
String publicKeyString = "";
String str;
while ((str = br.readLine()) != null) {
publicKeyString += str;
}
br.close();
fr.close();
// 每次操作都要init,频繁的操作会造成报错,其实这里只要在初始化的构造函数里,init就可以解决报错的问题。
//cipher.init(Cipher.ENCRYPT_MODE, getPublicKey(publicKeyString));
//byte[] enBytes = cipher.doFinal(plainText.getBytes());
//return (new BASE64Encoder()).encode(enBytes).replaceAll("\r\n", "");
// 解决超过117个字符出错的问题
byte[] enBytes = null;
//StringBuilder sb = new StringBuilder(); 
            for (int i = 0; i < plainText.getBytes().length; i += 64) { 
                byte[] doFinal = cipher.doFinal(ArrayUtils.subarray(plainText.getBytes(), i, i + 64)); 
//                sb.append(new String(doFinal)); 
                enBytes = ArrayUtils.addAll(enBytes, doFinal); 
            } 
            return (new BASE64Encoder()).encode(enBytes).replaceAll("\r\n", "");
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

热点排行