You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
995 B
39 lines
995 B
package crypto
|
|
|
|
import "bytes"
|
|
|
|
type Crypto struct {
|
|
}
|
|
|
|
const defaultAesKey = "wVQvqtER8xzTLKB0f9Y4S_30ZF0rEDAN" //8 16 32
|
|
const defaultDesKey = "Xj9UnbYA" //max 8
|
|
|
|
// complement method
|
|
func pKCS7Padding(ciphertext []byte, blocksize int) []byte {
|
|
padding := blocksize - len(ciphertext)%blocksize
|
|
padtext := bytes.Repeat([]byte{byte(padding)}, padding)
|
|
return append(ciphertext, padtext...)
|
|
}
|
|
|
|
// to code method
|
|
func pKCS7UnPadding(origData []byte) []byte {
|
|
length := len(origData)
|
|
unpadding := int(origData[length-1])
|
|
return origData[:(length - unpadding)]
|
|
}
|
|
|
|
// zeroPadding zero padding function
|
|
func zeroPadding(ciphertext []byte, blockSize int) []byte {
|
|
padding := blockSize - len(ciphertext)%blockSize
|
|
padtext := bytes.Repeat([]byte{0}, padding)
|
|
return append(ciphertext, padtext...)
|
|
}
|
|
|
|
// zeroUnPadding zero unPadding function
|
|
func zeroUnPadding(origData []byte) []byte {
|
|
return bytes.TrimFunc(origData,
|
|
func(r rune) bool {
|
|
return r == rune(0)
|
|
})
|
|
}
|