1

谢谢您的帮助。

我对 sjcl 库或 cryptojs aes 库有疑问。每次我用 aes 加密我的文件时,文件大小为 * 2。例如:当我上传一个 4mb 的文件时,我的服务器上有一个 8mb 的文件。

我将文件拆分为字节大小可以除以 16 的块。

请帮我

这是我加密文件的方式:

var l_EncryptetData = CryptoJS.AES.encrypt(p_ChunkData, p_FileKey).toString();

这是一个示例数组,其中包含 4mb 文件中的块大小:

0: 1572864
1: 1572864
2: 867005
length: 3

FileKey 是一个 SHA-256 哈希

4

1 回答 1

2

您正在将密码输出(CipherParams对象)转换为字符串。默认情况下,CryptoJS 通过以十六进制表示结果来执行此操作,其中每个字节被编码为两个十六进制数字。您可以通过提供自定义格式策略来覆盖此行为。或者更好的是,不要将密文转换为字符串;将其保存为二进制数据。

请警告您的应用程序的用户它不安全。

于 2015-07-08T17:32:28.757 回答