AES加密使用C#和Java解密 [英] AES encryption using C# and decryption in Java

查看:52
本文介绍了AES加密使用C#和Java解密的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只是想确认我对 AES 工作原理的理解.

I just want to confirm my understanding of how AES works.

如果 company#1 正在加密数据,并将此数据发送给 company#2 进行解密,我们假设其中一个使用 C#,另一个使用 Java.

If company#1 is encrypting the data, and sending this data to company#2 to decrypt, and let's presume that one of them uses C# and the other Java.

只要双方使用相同的共享密钥,双方是否应就其他设置/配置达成一致以确保数据正确加密和解​​密?

As long as both are using the same shared secret key, is there anything else setting/configuration wise both parties should agree upon to make sure the data is correctly encryption and decrypted?

推荐答案

双方在很多方面都必须达成一致:

There is a lot that both have to agree upon:

  • 共享密钥
    • 多长时间了?(是否需要按键填充?)
    • 实际密钥是否从另一个密钥或密码派生而来,并带有额外的盐?
      • 使用了哪个密钥推导函数,它们的参数是什么?PBKDF2, bcrypt, scrypt, ...
      • IV 是否与密钥一起派生?(通常通过从密钥派生函数请求密钥大小 + IV 大小输出)
      • 块密码,如 AES、Triple DES、Twofish、Rijndael ......
        • 密码参数,例如块大小,以防它是可变的
        • 对于基于 IV 的模式:IV 是如何生成的?它是随机生成并放入容器格式中,还是与密码中的密钥一起派生,因此不需要放入密文容器中?
        • 对于 CTR 等基于随机数的模式:随机数(有时称为 IV)有多大?
        • 对于 CFB 等参数化模式:段有多大?
        • 作为 GCM、EAX、SIV 等操作模式,...
        • 作为单独的 encrypt-then-MAC/MAC-then-encrypt/encrypt-and-MAC 方案与 MAC 类似 HMAC-SHA256、CMAC、HKDF、GHASH ......
        • 是将所有内容从完成的二进制格式一起编码为文本格式,还是将组件单独编码并连接在一起?
        • 在哪里放置 IV/nonce/salt(如果有)?(通常在实际密文之前)
        • 在哪里放置身份验证标签(如果有)?(通常在实际密文之后)
        • 加密消息语法是否适用?

        这篇关于AES加密使用C#和Java解密的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆