AES加密支持多種填充方式,NoPadding,PKCS5Padding,ISO10126Padding,ZerosPadding,PKCS7Padding。
其中PKCS7Padding 就是數據個數最后少幾個就填充多少個數,具體的做法可以:數據的個數先取余16,然后16減去余數。
例如{1,2,3,4,5,6,7,8,9},總共9個數值,取余16后是9,需要補充7個7,則最后數據變為{1,2,3,4,5,6,7,8,9,7,7,7,7,7,7,7}
需要特別注意一種情況:如果數據的個數剛好是16的倍數,那就要在補充16個字節(一定要)。例如{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},填充后的數據是{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16}
ZerosPadding就是缺少多少位就補充多少個0,基本流程相同。