`
wang_peng1
  • 浏览: 3955060 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

aes文件读取

阅读更多

android:

public class AesFileIo { 
    private static final String EOL = "\n"; 
    private static final String AES_ALGORITHM = "AES/CTR/NoPadding"; 
    private SecretKeySpec secretKeySpec; 
    private IvParameterSpec ivSpec; 
    private static final String PROVIDER = "BC";  
 
    AesFileIo(byte[] aesKey, byte[] iv) { 
        ivSpec = new IvParameterSpec(iv); 
        secretKeySpec = new SecretKeySpec(aesKey, "AES"); 
    } 
 
    public String readFile(Context c, String fileName) { 
        StringBuilder stringBuilder = new StringBuilder(); 
        try { 
            InputStream is = c.openFileInput(fileName); 
            Cipher cipher = Cipher.getInstance(AES_ALGORITHM, PROVIDER); 
            cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivSpec); 
            CipherInputStream cis = new CipherInputStream(is, cipher); 
            InputStreamReader isr = new InputStreamReader(cis); 
            BufferedReader reader = new BufferedReader(isr); 
            String line; 
            while ((line = reader.readLine()) != null) { 
                stringBuilder.append(line).append(EOL); 
            } 
            is.close(); 
        } catch (java.io.FileNotFoundException e) { 
            // OK, file probably not created yet 
            Log.i(this.getClass().toString(), e.getMessage(), e); 
        } catch (Exception e) { 
            Log.e(this.getClass().toString(), e.getMessage(), e); 
        } 
        return stringBuilder.toString(); 
    } 
 
    public void writeFile(Context c, String fileName, String theFile) { 
        try { 
            Cipher cipher = Cipher.getInstance(AES_ALGORITHM, PROVIDER);  
            cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivSpec); 
            byte[] encrypted = cipher.doFinal(theFile.getBytes());  
            OutputStream os = c.openFileOutput(fileName, 0); 
            os.write(encrypted); 
            os.flush(); 
            os.close(); 
        } catch (Exception e) { 
            Log.e(this.getClass().toString(), e.getMessage(), e); 
        } 
    } 
} 

 

pc

public class AesFileIo { 
 
    private static final String EOL = "\n"; 
    private static final String AES_ALGORITHM = "AES/CTR/NoPadding"; 
    private SecretKeySpec secretKeySpec; 
    private IvParameterSpec ivSpec; 
 
    AesFileIo(byte[] aesKey, byte[] iv) { 
        Security.addProvider(new org.bouncycastle.jce.provider 
                .BouncyCastleProvider()); 
        ivSpec = new IvParameterSpec(iv); 
        secretKeySpec = new SecretKeySpec(aesKey, "AES"); 
    } 
 
    public String readFile(String fileName) { 
        StringBuilder stringBuilder = new StringBuilder(); 
        try { 
            FileInputStream fis = new FileInputStream(fileName); 
            Cipher cipher = Cipher.getInstance(AES_ALGORITHM); 
            cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivSpec); 
            CipherInputStream cis = new CipherInputStream(fis, cipher); 
            InputStreamReader isr = new InputStreamReader(cis); 
            BufferedReader reader = new BufferedReader(isr); 
            String line; 
            while ((line = reader.readLine()) != null) { 
                stringBuilder.append(line).append(EOL); 
            } 
            fis.close(); 
        } catch (java.io.FileNotFoundException e) { 
            System.out.println("FileNotFoundException: probably OK"); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
        return stringBuilder.toString(); 
    } 
 
    public void writeFile(String fileName, String theFile) { 
        try { 
            Cipher cipher = Cipher.getInstance(AES_ALGORITHM); 
            cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivSpec); 
            byte[] encrypted = cipher.doFinal(theFile.getBytes()); 
            FileOutputStream fos = new FileOutputStream(fileName); 
            fos.write(encrypted); 
            fos.flush(); 
            fos.close(); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 
} 

 

分享到:
评论

相关推荐

    aes文件加密方式C++源码

    5. **文件读取与加密**: 分块读取文件内容,每次处理一个128位的数据块(对于不足128位的末尾块,需要填充)。使用`AES_cbc_encrypt()`函数对每个数据块进行加密。 ```cpp ifstream file("input.txt", ios::binary);...

    对文件进行加密的aes源程序.rar_AES_AES-128_AES文件_AES文件加密_aes 文件

    "aes文件加密"是指使用AES算法对文件进行加密的过程,这个过程包括读取文件内容、将内容转换为比特流、使用AES算法进行加密,最后将加密后的数据写入新的文件。解密时,使用相同的密钥和反向操作来恢复原始文件内容...

    aes.zip_AES_AES文件加密_aes c语言_aes 文件 _文件加解密

    总结来说,"aes.zip"中的"aes.cpp"文件提供了C++实现的AES文件加密解密功能,涵盖了AES加密算法的关键步骤,对于理解和学习AES以及C++编程都有很大的帮助。无论是为了提高数据安全性,还是深入理解加密原理,这份...

    Aesjiami.rar_AES_AES 文件 加密_AES文件加密_visual c_文件加密程序

    **AES文件加密** AES,全称为“Advanced Encryption Standard”,即高级加密标准,是目前广泛使用的对称加密算法。它在2001年由NIST(美国国家标准与技术研究所)正式采纳,取代了之前的DES(数据加密标准)成为新...

    AES文件加密VC代码

    在VC++环境中实现AES文件加密,涉及到的知识点包括: 1. **AES算法原理**:AES是一种分组密码,它以128位为单位对数据进行加密。有三种不同的密钥长度——128位、192位和256位,每个长度对应不同的轮数,分别是10轮...

    AES.rar_AES_AES pu_AES文件加密_aes 多线程_aes 加密文件

    缓冲技术通过在内存中存储一部分数据,减少了磁盘I/O操作的次数,提高了文件读取和写入的速度。此外,可能还采用了流式处理,能够处理任意大小的文件,而无需一次性加载整个文件到内存,这对于处理大文件非常有利。 ...

    AES.zip_AES_AES文件加密_C# AES_aes csharp_aes 文件

    本教程将详细介绍如何使用C#进行AES文件加密。 一、AES加密原理 AES是一种迭代的、对称密钥加密算法,它基于128位的数据块进行操作,并使用128、192或256位的密钥。AES通过多个步骤,包括字节替代、行位移、列混淆...

    [C++]AES全文件加解密

    5. **代码结构**:一个完整的AES全文件加解密程序通常包括读取文件、分块、加密/解密块、合并结果和写入文件等部分。其中,加解密函数是核心,它们接受文件块作为输入,返回加密/解密后的块。 6. **注释**:程序中...

    android使用AES加密和解密文件实例代码

    Android 使用 AES 加密和解密文件实例代码 在 Android 应用程序中,使用 AES(Advanced Encryption Standard)加密和解密文件是一种常见的安全措施。本文将详细介绍 Android 使用 AES 加密和解密文件的实例代码,并...

    java 基于AES实现对文件的加密 解密

    例如,确保文件读取和写入的正确性,以及在解密过程中处理可能的异常。此外,www.willvc.com.cn 提供的资源可能是进一步学习和解决问题的途径。 总之,通过Java中的AES加密和解密,我们可以有效地保护文件数据的...

    AES.rar_aes c语言_aes 文件 _文件加解密_文件加解密c++

    为了实现AES文件加解密,我们需要将文件内容读取到内存中,然后按照AES的块大小(通常是128位)对数据进行分块。每个数据块都独立进行加密或解密,最后将所有加密或解密后的块合并回原始文件大小的输出。在C++中,...

    AES.zip_AES MFC_AES MFC_aes 字符串_aes 文件 _c++ aes加密解密

    解密过程则相反,从加密文件读取数据,解密后再写回到原始文件或输出到新文件。 在C++中,处理文件时可以使用`ifstream`和`ofstream`类,处理内存中的数据则可以使用`std::vector<unsigned char>`。同时,为了确保...

    C#写的大文件AES加密解密程序

    3. **加密过程**:使用AES加密器的`CreateEncryptor`方法生成加密流,然后将大文件读取并分块处理,每一块都通过加密流进行加密。由于是大文件,可能需要使用缓冲流来提高效率。 4. **存储密文和IV**:加密后的数据...

    SWING 实现AES文件加密算法

    本项目实现了利用SWING构建GUI来执行AES文件加密,且整个加密过程完全由Java语言自己实现,不依赖JDK内置的加密库。 AES算法基于块密码,标准的AES有128位的块大小,并支持128、192和256位的密钥长度。其工作模式...

    AES文件加密/解密实例

    接下来,为了加密文件,你需要读取文件内容到内存,然后使用AES对象的`ProcessData`方法进行处理。解密过程类似,只是使用解密对象: ```cpp std::ifstream inputFile("plaintext.txt", std::ios::binary); std::...

    AES.zip_AES 文件加密_AES 字符_C++ 加密解密_aes加密文件_aes对文件加密

    3. 错误处理:在加密和解密过程中可能出现错误,如文件读写错误、内存分配失败等,需要有适当的错误处理机制。 4. 性能优化:对于大量数据的加密,可能需要考虑并行处理和缓存优化。 通过理解和使用这个AES加密解密...

    AES.rar_AES 文件 加密

    此压缩包文件"AES.rar"包含了与AES文件加密相关的资料。 AES的核心是基于替换和置换的组合,它采用了固定的区块大小128位,并且支持三种密钥长度:128位、192位和256位。在加密过程中,原始数据被分成128位的数据块...

    AES文件加密.rar

    这款C#开发的AES文件加密软件,显然考虑到了实际应用中的各种场景,包括处理大型文件的能力,以及对不同格式文件的支持。它体现了C#编程的强大能力,以及AES加密在保障数据安全方面的重要作用。用户可以借助这样的...

    aes.zip_AES_aes 文件

    这个程序可能还包括输入/输出功能,允许用户从文件读取数据进行加密或解密,或者直接在程序中输入数据。此外,可能还会有错误处理和一些辅助函数,如十六进制字符串和字节数组之间的转换。 在实际应用中,AES常用于...

    java使用AES加密/解密文件

    4. 文件读写操作,如`FileInputStream`、`FileOutputStream`、`CipherInputStream`和`CipherOutputStream`。 5. 如何安全地管理和存储密钥。 以上就是关于“java使用AES加密/解密文件”的详细说明,涵盖了生成密钥...

Global site tag (gtag.js) - Google Analytics