我正在使用Chrome扩展程序对数据进行加密,并通过HTTPS将其发布到将脚本存储到MySQL数据库的PHP脚本中。然后,转储数据库并将其发送到解密数据的安全环境。
对于加密,我使用的是带有扩展名的RSA-2048公钥。
数据只是一个字节数组(表示为整数),数组的长度始终是五的倍数。像这样:
-it:main
在RSA-2048中,我最多只能加密245个字节。我不想在base64中对这些字节进行编码,因为我只能存储120个字节的原始数据。在这种情况下,最有效的传输编码是什么?
答案 0 :(得分:2)
对于加密,我使用了扩展随附的RSA-2048公钥。
许多安全专家actively discourage the use of RSA in new protocols。
在RSA-2048中,我最多只能加密245个字节。我不想在base64中编码这些字节,因为我只能存储120字节的原始数据。在这种情况下,最安全的传输方式是什么?
注释器“ Dan D”(正确)说:“使用RSA加密某个AES密钥,然后使用该密钥加密数据。然后存储RSA(pub, sk)+AES(sk, data)
”,您回答“我不知道”要使用混合加密”。
如果您要使用RSA(you really shouldn't!),则安全而可靠地执行此操作的唯一方法是使用混合加密。
有趣的是,您在问题中提到的245字节限制表示您正在使用PKCS#1 v1.5填充,即vulnerable to chosen-ciphertext attacks。
您实际上有三个选择: