What are the cipher padding strings in java

后端 未结 2 1249
粉色の甜心
粉色の甜心 2020-12-08 19:39

Everyone talks about the padding schemes in ciphers but what are the actual strings one needs to pass in to the cipher? I don\'t care if they are symmetric or asymmetric, I

相关标签:
2条回答
  • 2020-12-08 20:11

    Block cyphers need padding, stream cyphers don't. Block cyphers need padding because they encrypt whole blocks, and your message may not exactly match a whole number of blocks. Padding is used to extend the message length to the next block boundary.

    See the Wikipedia article on Cryptographic padding for a lot of detail.

    For most purposes PKCS#7 (aka PKCS#5) padding is used: n bytes, all of value n:

    01
    02 02
    03 03 03
    ...
    10 10 10 10 ... 10 10
    
    0 讨论(0)
  • 2020-12-08 20:19

    There are many types of padding, PKCS-7, Zero, ISO 10126, ANSI X.923, etc.
    I suggest you read up on padding since you seem not to fully understand the concept.

    Then there's the possibility you are referring to cryptographic salt.

    Edit
    Every implementation of the Java platform is required to support the following standard Cipher transformations with the keysizes in parentheses:

    • AES/CBC/NoPadding (128)
    • AES/CBC/PKCS5Padding (128)
    • AES/ECB/NoPadding (128)
    • AES/ECB/PKCS5Padding (128)
    • DES/CBC/NoPadding (56)
    • DES/CBC/PKCS5Padding (56)
    • DES/ECB/NoPadding (56)
    • DES/ECB/PKCS5Padding (56)
    • DESede/CBC/NoPadding (168)
    • DESede/CBC/PKCS5Padding (168)
    • DESede/ECB/NoPadding (168)
    • DESede/ECB/PKCS5Padding (168)
    • RSA/ECB/PKCS1Padding (1024, 2048)
    • RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)
    • RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024, 2048)

    You can find a list here.

    Edit 2
    You can find the Bouncy Castle specification here. It lists all available padding schemes.

    0 讨论(0)
提交回复
热议问题