编辑 | blame | 历史 | 原始文档
package main

import (
	"fmt"

	"basic.com/valib/licence.git"
)

func main() {
	
	// 生成秘钥和公钥, 参数: 文件前缀
	if len(os.Args) > 1 && os.Args[1] == "-g" {
		licence.GetRsaKey("test")
		return
	}

	// 获取机器码
	machCode := licence.GetMachineCode()
	fmt.Println("MachineCode: ", machCode)

	// 获取注册码, 参数: 公司名, 电子邮箱, 手机号
	regCode := licence.GetRegisterCode("basic.com", "dev@basic.com", "13911697509")
	fmt.Println("Register code:", regCode)

	fd, err := os.Open("./private.key")
	if err != nil {
		fmt.Println(err)
		return
	}

	defer fd.Close()
	privateKey, err := ioutil.ReadAll(fd)
	if err != nil {
		fmt.Println(err)
		return
	}

	// 生成Licence, 参数: 注册码, 到期时间, 秘钥
	licenceCode, err := licence.GenerateLicence(regCode, "2106-01-02 15:04:05", privateKey)
	if err != nil {
		fmt.Println("GenerateLicence error :", err)
		return
	}
	fmt.Println("licence code:", licenceCode)
	ioutil.WriteFile("./LicenceFile", []byte(licenceCode), 0666)

	// 解密Licence文件
	licenceText, err := licence.DecryptLicence("./LicenceFile", "./public.pem")
	if err != nil {
		fmt.Println("DecryptLicence error :", err)
		return
	}
	fmt.Println("licence text:", string(licenceText))

	// 验证Licence, 参数: LicenceFile, public.pem 的路径 返回: 0, 成功 1, 无效 2, 设备未授权 3, 过期
	fmt.Println(licence.VerifyLicence("./LicenceFile", "./public.pem"))
}