資源簡(jiǎn)介
BouncyCastleProvider jar包,如果有引入該類(lèi)包報(bào)錯(cuò)的,可以下載,親測(cè)可用,測(cè)試代碼附上,有問(wèn)題請(qǐng)reply to me

代碼片段和文件信息
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.InputStream;
import?java.io.objectInputStream;
import?java.io.OutputStream;
import?java.security.Key;
import?java.security.KeyPair;
import?javax.crypto.Cipher;
public?class?Test?{
public?static?void?main(String[]?args)?throws?Exception?{
?/*?1
?SecureRandom?sr?=?new?SecureRandom();
?????KeyPairGenerator?kg?=?KeyPairGenerator.getInstance(“RSA“new?org.bouncycastle.jce.provider.BouncyCastleProvider());
?????//注意密鑰大小最好為1024否則解密會(huì)有亂碼情況.
?????kg.initialize(1024?sr);
?????FileOutputStream?fos?=?new?FileOutputStream(“C:/RSAKey.xml“);
?????objectOutputStream?oos?=?new?objectOutputStream(fos);
?????//生成密鑰
?????oos.writeobject(kg.generateKeyPair().getPrivate());
?????oos.close();
?????*/
?/*?2
?????Key?kp;
?????String?fileName?=?“RSAKey.xml“;
?????InputStream?is?=?Test.class.getClassLoader().getResourceAsStream(fileName);
?????objectInputStream?oos?=?new?objectInputStream(is);
?????kp?=?(Key)?oos.readobject();
?????oos.close();
?????encryptFile(“C:/bsmain_runtime.log““C:/encry.log“kp);
??????
??????*/
????}
public?static?void?encryptFile(String?srcFileName?String?destFileNameKey?publicKkey)?throws?Exception?{
??????OutputStream?outputWriter?=?null;
??????InputStream?inputReader?=?null;
??????try?{
????????????Cipher?cipher?=?Cipher.getInstance(“RSA“?new?org.bouncycastle.jce.provider.BouncyCastleProvider());
????????????
????????????byte[]?buf?=?new?byte[100];
????????????int?bufl;
????????????cipher.init(Cipher.ENCRYPT_MODE?publicKkey);
????????????
????????????System.out.println(cipher.getBlockSize()+“================“);
????????????outputWriter?=?new?FileOutputStream(destFileName);
????????????inputReader?=?new?FileInputStream(srcFileName);
????????????while?((bufl?=?inputReader.read(buf))?!=?-1)?{
????????????????byte[]?encText?=?null;
????????????????byte[]?newArr?=?null;
????????????????if?(buf.length?==?bufl)?{
????????????????????newArr?=?buf;
????????????????}?else?{
????????????????????newArr?=?new?byte[bufl];
????????????????????for?(int?i?=?0;?i?
??????????????????????????newArr[i]?=?(byte)?buf[i];
????????????????????}
????????????????}
????????????????encText?=?cipher.doFinal(newArr);
????????????????outputWriter.write(encText);
????????????}
????????????outputWriter.flush();
??????}?catch?(Exception?e)?{
????????????throw?e;
??????}?finally?{
????????????try?{
????????????????if?(outputWriter?!=?null)?{
????????????????????outputWriter.close();
????????????????}
????????????????if?(inputReader?!=?null)?{
????????????????????inputReader.close();
????????????????}
????????????}?catch?(Exception?e)?{
????????????}
??????}
??}
}
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????3011??2009-06-29?22:13??Test.java
?????文件????1632822??2009-06-29?21:50??bcprov-jdk15-143.jar
-----------?---------??----------?-----??----
??????????????1635833????????????????????2
評(píng)論
共有 條評(píng)論