科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道java版AES文件加密速度问题

java版AES文件加密速度问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

java版AES文件加密速度问题

作者:sds123456 来源:赛迪网技术社区 2007年12月1日

关键字: AES 速度问题 文件加密

  • 评论
  • 分享微博
  • 分享邮件

 简单的一个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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

          重磅专题
          往期文章
          最新文章