Files
cdle 0ae29bb9a4 x
2023-07-09 11:41:30 +08:00

44 lines
756 B
Go

package core
import (
"crypto/hmac"
"crypto/sha256"
"encoding/hex"
"github.com/cdle/sillyplus/core/storage"
"github.com/cdle/sillyplus/utils"
)
func protect(appID, id string) string {
mac := hmac.New(sha256.New, []byte(id))
mac.Write([]byte(appID))
return hex.EncodeToString(mac.Sum(nil))
}
func init() {
GetMachineID()
storage.Watch(sillyGirl, "machine_id", func(old, new, key string) *storage.Final {
if old == "" {
return nil
}
return &storage.Final{
Now: old,
}
})
}
var machine_id = ""
var GetMachineID = func() string {
var id = ""
if id == "" {
id = sillyGirl.GetString("machine_id")
}
if id == "" {
id = protect(utils.GenUUID(), "sillyplus")
sillyGirl.Set("machine_id", id)
}
machine_id = id
return id
}