How can I encrypt with AES in C# so I can decrypt it in PHP?

后端 未结 4 1813
小蘑菇
小蘑菇 2020-12-12 06:25

I\'ve found a few answers to Encrypt in PHP, and Decrypt in C#, but as yet have been unable to reverse the process...

The background is I want to:

In C#: AES

4条回答
  •  [愿得一人]
    2020-12-12 07:00

    Generally it only depends on selecting the right options on both sides:

    • Plaintext character format

      how plaintext characters are encoded in the bit string

    • Padding

      how to pad the plaintext to be an exact multiple of the block size

    • Key length

      must be agreed if there is a choice

    • Key derivation

      how to create the bit string to be used for the key

    • Mode

      which mode of encryption to use

    • Storage format

      how we store the ciphertext

    Please see here for a lot of information about these things. Especially the padding seems to be the root of most interoperability problems as PHP's mcrypt uses a NULL-padding by default and has no built-in support for any other padding mode, while e.g. .NET doesn't even provide an option to use a NULL-padding (as it may cause issues when encrypting binary data).

提交回复
热议问题