gitee.com/lh-her-team/common@v1.5.1/crypto/sym/util/util.go (about)

     1  package util
     2  
     3  import (
     4  	"bytes"
     5  	"errors"
     6  )
     7  
     8  // PKCS5Padding padding with pkcs5
     9  func PKCS5Padding(ciphertext []byte, blockSize int) []byte {
    10  	padding := blockSize - len(ciphertext)%blockSize
    11  	padtext := bytes.Repeat([]byte{byte(padding)}, padding)
    12  	return append(ciphertext, padtext...)
    13  }
    14  
    15  // PKCS5UnPadding unpadding with pkcs5
    16  func PKCS5UnPadding(origData []byte) ([]byte, error) {
    17  	length := len(origData)
    18  	unpadding := int(origData[length-1])
    19  	if unpadding > length {
    20  		return nil, errors.New("decrypt failed,please check it")
    21  	}
    22  	return origData[:(length - unpadding)], nil
    23  }