900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java rsa 私钥解密_Java RSA 加密解密中 密钥保存并读取 数据加密解密并保存读取 问题...

java rsa 私钥解密_Java RSA 加密解密中 密钥保存并读取 数据加密解密并保存读取 问题...

时间:2021-05-20 14:02:51

相关推荐

java rsa 私钥解密_Java RSA 加密解密中 密钥保存并读取 数据加密解密并保存读取 问题...

展开全部

帮你完善了下代码。importjava.io.File;

importjava.io.FileOutputStream;

importjava.io.FileReader;

importjava.io.OutputStream;

importjava.io.PrintWriter;

importjava.io.Reader;

importjava.util.Map;

publicclassTest{

staticStringpublicKey;

staticStringprivateKey;

publicTest()throwsException{

//TODOAuto-generatedconstructorstub

MapkeyMap=RSAUtils.genKeyPair();

publicKey=RSAUtils.getPublicKey(keyMap);

privateKey=RSAUtils.getPrivateKey(keyMap);

//保存密钥,名字分别为publicKey。txt和privateKey。txt;

PrintWriterpw1=newPrintWriter(newFileOutputStream(

"D:/publicKey.txt"));

PrintWriterpw2=newPrintWriter(newFileOutputStream(

"D:/privateKey.txt"));

pw1.print(publicKey);

pw2.print(privateKey);

pw1.close();

pw2.close();

//从保存的目32313133353236313431303231363533e58685e5aeb931333337396230录读取刚才的保存的公钥,

Stringpubkey=readFile("D:/publicKey.txt");//读取的公钥内容;

Stringdata=readFile("D:/1.txt");//需要公钥加密的文件的内容(如D:/1.txt)

byte[]encByPubKeyData=RSAUtils.encryptByPublicKey(data.getBytes(),

pubkey);

//将加密数据base64后写入文件

writeFile("D:/Encfile.txt",Base64Utils.encode(encByPubKeyData).getBytes("UTF-8"));

//加密后的文件保存在

Stringprikey=readFile("D:/privateKey.txt");//从保存的目录读取刚才的保存的私钥,

StringEncdata=readFile("D:/Encfile.txt");//刚才加密的文件的内容;

byte[]encData=Base64Utils.decode(Encdata);

byte[]decByPriKeyData=RSAUtils.decryptByPrivateKey(encData,prikey);

//解密后后的文件保存在D:/Decfile.txt

writeFile("D:/Decfile.txt",decByPriKeyData);

}

privatestaticStringreadFile(StringfilePath)throwsException{

FileinFile=newFile(filePath);

longfileLen=inFile.length();

Readerreader=newFileReader(inFile);

char[]content=newchar[(int)fileLen];

reader.read(content);

System.out.println("读取到的内容为:"+newString(content));

returnnewString(content);

}

privatestaticvoidwriteFile(StringfilePath,byte[]content)

throwsException{

System.out.println("待写入文件的内容为:"+newString(content));

FileoutFile=newFile(filePath);

OutputStreamout=newFileOutputStream(outFile);

out.write(content);

if(out!=null)out.close();

}

publicstaticvoidmain(String[]args)throwsException{

//TODOAuto-generatedmethodstub

newTest();

}

}

测试结果:读取到的内容为:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVr9D9hYPD4kS5k86dRm+utyt5XGOSTPwT0YeoBnQmgeISkNsbtUFkY6txyodVl26IM1H5iwJ1jMQ63+lXfZxzNpeA+rHaxmeQ2qI+5ES9AF7G6KIwjzakKsA08Ly+1y3dp0BnoyHF7/Pj3AS28fDmE5piea7w36vp4E3Ts+F9vwIDAQAB

读取到的内容为:锘县ahaha

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。