padding.go 565 B

1234567891011121314151617181920212223
  1. package crypto4go
  2. import (
  3. "bytes"
  4. )
  5. func ZeroPadding(data []byte, blockSize int) []byte {
  6. var diff = blockSize - len(data)%blockSize
  7. var paddingText = bytes.Repeat([]byte{0}, diff)
  8. return append(data, paddingText...)
  9. }
  10. func PKCS7Padding(data []byte, blockSize int) []byte {
  11. var diff = blockSize - len(data)%blockSize
  12. var paddingText = bytes.Repeat([]byte{byte(diff)}, diff)
  13. return append(data, paddingText...)
  14. }
  15. func PKCS7UnPadding(data []byte) []byte {
  16. var length = len(data)
  17. var unpadding = int(data[length-1])
  18. return data[:(length - unpadding)]
  19. }