Table 如何存储加密字段,读取解密字段

用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[:])
	})

结果不对。

@wyb 更新/存储提交对字段过滤处理的API 是FieldPostFilterFn,同时可以了解一下提交的流程