扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
简单的一个java版的AES文件加密demo, 运行正常, 但文件一大速度就会很慢,不知道是否能优化一下,以提高增快加密的速度或许是我的代码写法有问题, 希望各位大俠指正 g0;*A1V
g1"4`QROn
Ab5&K-U0.
import java.io.File; z XLgnM1W
import java.io.FileInputStream; |C8qvV[
import java.io.FileOutputStream; S3Xns^2E
import java.security.SecureRandom; m}y3X[1{
YgP>>gmWnJ
import javax.crypto.Cipher; 9a#qQ|KS
import javax.crypto.KeyGenerator; g-qJi ~6#
import javax.crypto.SecretKey; sZL{,
import javax.crypto.spec.SecretKeySpec; :27=_@8}
OT DWO*e
public class AES { A!5f8yj"
\ib/1|CT
// 加密文件 h[gnWZ@gP
public static void encryptfile(String pwd, File fileIn) throws Exception { h&#)Y4=?
try { uT1:5y
//读取文件 h^I8|uqR
FileInputStream fis = new FileInputStream(fileIn); &{x[S9u
byte[] bytIn = new byte[(int) fileIn.length()]; e5r8_50ut|
for (int i = 0; i < fileIn.length(); i++) { <+1jLv.$
bytIn = (byte) fis.read(); 6x0OFN1
} cXD!xr _[6
//AES加密 r(1ZLijDm
KeyGenerator kgen = KeyGenerator.getInstance("AES"); YdLQJA??`
kgen.init(128, new SecureRandom(pwd.getBytes())); $78E|D
SecretKey skey = kgen.generateKey(); &~35Sk
byte[] raw = skey.getEncoded(); c C=|3N8n
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); GPQ&<PqC
Cipher cipher = Cipher.getInstance("AES"); W259&]/T_
cipher.init(Cipher.ENCRYPT_MODE, skeySpec); x w!j}Th#
//写文件 =Y,lgqLt
byte[] bytOut = cipher.doFinal(bytIn); k6h+#WK
FileOutputStream fos = new FileOutputStream(fileIn.getPath() Af@lB ,uIs
+ ".aes"); }@*]P2
for (int i = 0; i < bytOut.length; i++) { tW8xc~ _
fos.write((int) bytOut); 6*<rx&1
} =GX M:es)E
fos.close(); #hFCNiY#j
fis.close(); ~'^=QH=@
} catch (Exception e) { Qw G>?:!
throw new Exception(e.getMessage()); B^MV8NZS3
} 7]1>/GL
} 8`]kW<jHS
public static void main(String[] args) throws Exception { ~`;~+Qq
AES aes = new AES(); Nz\_$: rGC
String pwd = "123"; f6 !0O
File file = new File("d:/xxx.doc"); !38Z0j 5!
aes.encryptfile(pwd, file); p`8[=b0e
} %*olblri
} XL2-,0
查看本文来源
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者