感谢您的帮助。
我的sjcl库或cryptojs aes库有问题。 每次我使用aes加密我的文件,文件大小为* 2。 例如:当我上传4mb文件时,我的服务器上有一个8mb文件。
我将文件拆分为块,其中bytesize可以除以16。
请帮帮我
这是我加密文件的方式:
var l_EncryptetData = CryptoJS.AES.encrypt(p_ChunkData, p_FileKey).toString();
这是一个示例数组,块大小来自4mb文件:
0: 1572864
1: 1572864
2: 867005
length: 3
FileKey是一个SHA-256哈希
答案 0 :(得分:2)
您正在将密码输出(CipherParams
对象)转换为字符串。默认情况下,CryptoJS通过以十六进制表示结果来完成此操作,其中每个字节编码为两个十六进制数字。您可以通过提供custom format strategy.或更好的方式覆盖此行为,不要将密文转换为字符串;将它保存为二进制数据。
请警告用户您的应用程序不安全。