用cmd工具生成的table文件,存储、更新到mysql的时候需要加密,读取的时候需要再解密
应该怎么实现呢?
我尝试了存储、更新的时候用:
formList.AddField("Secret", "secret", db.Varchar, form.Text).SetInsertFn(func(values formMod.Values) error{
secret:=values.Get("secret")
fmt.Printf("secret:%v\n", secret)
encryptValue, _ := util.Encrypt([]byte(secret), []byte(util.AESKey))
fmt.Printf("encryptValue:%v\n", encryptValue)
encode := base64.StdEncoding.EncodeToString(encryptValue)
fmt.Printf("encode:%v\n", encode)
values.Add("secret", encode)
return nil
}).SetUpdateFn(func(values formMod.Values) error{
secret:=values.Get("secret")
fmt.Printf("secret:%v\n", secret)
encryptValue, _ := util.Encrypt([]byte(secret), []byte(util.AESKey))
fmt.Printf("encryptValue:%v\n", encryptValue)
encode := base64.StdEncoding.EncodeToString(encryptValue)
fmt.Printf("encode:%v\n", encode)
values.Add("secret", encode)
return nil
})
读取的时候用:
info.AddField("Secret", "secret", db.Varchar).FieldDisplay(func(value types.FieldModel) interface{}{
encrypted:=value.Value
fmt.Printf("encrypted:%v\n", encrypted)
decode, _ := base64.StdEncoding.DecodeString(encrypted)
fmt.Printf("decode:%v\n", decode)
secret, _ := util.Decrypt(decode, []byte(util.AESKey))
fmt.Printf("secret:%v %v\n", srcKey, string(secret[:]))
return string(secret[:])
})
结果不对。