您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Java中使用AES-128进行加密

在Java中使用AES-128进行加密

问题不在于我最初想到的IV或填充。这与您如何处理PHP代码中的密钥有关。如果您使用实际的字符串4288f0b8060ca1b682bf795f2617cfdc作为传递给您的密钥mcrypt_encryptmcrypt_decrypt那么您将不会使用与Java代码中相同的密钥。您将需要将该十六进制字符串转换为字节。您可以通过以下方式执行此操作:

$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, pack("H*", $key), base64_decode($decrypt), MCRYPT_MODE_ECB, $iv);

注意添加pack("H*", $key)转换值。我在这里PHPbin2hex函数注释中发现了这一点。这将解决当前问题。由于PHP不执行PKCS5填充,因此在处理不同长度的数据时可能会遇到填充问题。见对实现该功能缺失评论。另外,由于ECB的不适合性和数据加密的弱点,我建议使用CBC而不是ECB。

java 2022/1/1 18:14:56 有440人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶