Linux和Java中带有ANSI编码文件加密的问题

问题描述 投票:0回答:1

我用mysql导出数据库,然后用Java在Ubuntu上转储数据库,然后用Java加密和解密它。我使用以下类Encrypt and Decrypt with Java进行此操作。但是解密后,文件开头的某些字符是错误的。这是问题所在:enter image description here第一个图像是以编程方式具有mysqldump,加密和解密的文件。第二个只是来自同一命令行的mysqldump。您能指出我该怎么做吗?谢谢

java encryption utf-8 ansi
1个回答
0
投票

哦,那很简单。这种使用CBC加密的愚蠢(但有趣的是,看上去在很大程度上是正确的)方法将IV存储在单独的文件中,覆盖了所有旧文件。因此,如果您覆盖或获取了错误的IV文件,则解密后开始时将获得16个随机字节。因此,除非找到希望的IV文件,否则您的前16个字节(/字符)现在将永远丢失。

当然,任何理智的加密程序都将盐(密码和PBKDF2用于密钥派生)和IV与密文存储在同一文件中。

不过,如果您设法丢失了盐文件或密码,那么所有数据都将丢失,因此...

© www.soinside.com 2019 - 2024. All rights reserved.