在Go中使用变量解密字符串

时间:2019-07-24 12:39:41

标签: go

我正在尝试解密包含我的结构变量的字符串。 我希望解密后用正确的值替换字符串中的变量。

我的结果是我得到了带有变量的字符串,而不是被它们的值替换。

该怎么做?

这是我的代码。

type (
Test struct {
    Login   string `form:"login"`
    Email string `form:"email"`
    Age  string `form:"age"`
})

在我的功能内

tst:= Test{}
textToEncrypt := 
"login:tst.Login;email:tst.Email;timestampunix:1563804616"
textEncrypted := service.EncryptText(textToEncrypt, keysToEncrypt)

他加密后,我有一个加密字符串,直到可以为止。

当我调用我的解密函数时,他返回上面的字符串,但是我想要字符串中的变量值,即struct变量的值?

有可能吗?

1 个答案:

答案 0 :(得分:0)

如上所述,标准库中没有任何函数可以解析您的格式。似乎您使用分号和冒号作为此格式的分隔符。考虑到这一点,我们可以创建自定义代码以对其进行解析。

splitString = strings.Split(str, ";")

example.Login = GetLastIndex(splitString[0])
example.Email = GetLastIndex(splitString[1])
example.Age = GetLastIndex(splitString[2])

func GetLastIndex(str string) string {
    return str[strings.LastIndex(str, ":")+1:]
}

游乐场示例:https://play.golang.org/p/UTrazkQ5EI-