package common import ( "crypto/aes" "crypto/cipher" ) //使用钱包的password对私钥进行aes cbc加密,返回加密后的privkey func CBCEncrypterPrivkey(password []byte, privkey []byte) []byte { key := make([]byte, 32) Encrypted := make([]byte, len(privkey)) if len(password) > 32 { key = password[0:32] } else { copy(key, password) } block, _ := aes.NewCipher(key) iv := key[:block.BlockSize()] encrypter := cipher.NewCBCEncrypter(block, iv) encrypter.CryptBlocks(Encrypted, privkey) return Encrypted } //使用钱包的password对私钥进行aes cbc解密,返回解密后的privkey func CBCDecrypterPrivkey(password []byte, privkey []byte) []byte { key := make([]byte, 32) if len(password) > 32 { key = password[0:32] } else { copy(key, password) } block, _ := aes.NewCipher(key) iv := key[:block.BlockSize()] decryptered := make([]byte, len(privkey)) decrypter := cipher.NewCBCDecrypter(block, iv) decrypter.CryptBlocks(decryptered, privkey) return decryptered }