当前位置: 首页 > news >正文

网站开发 兼职项目免费域名注册

网站开发 兼职项目,免费域名注册,网站制作方案解决办法,陈田村拆车件网上商城目的和需求:部分go的核心文件不开源,例如验证,主程序核心逻辑等等 第一个想法,把子程序代码打包成静态文件,然后主程序执行 子程序 package mainimport ("fmt""github.com/gogf/gf/v2/os/gfile"…

目的和需求:部分go的核心文件不开源,例如验证,主程序核心逻辑等等

第一个想法,把子程序代码打包成静态文件,然后主程序执行

子程序

package mainimport ("fmt""github.com/gogf/gf/v2/os/gfile"
)func Valid() {contents := gfile.GetContents("cert.key")if contents != "123456" {fmt.Println("不通过")//主程序执行静态编译的文件,停止不到主程序//panic("not pass")}}func main() {Valid()}

执行打包命令:gf build -o valid
valid文件拷贝到主程序根目录

主程序

package hello
import ("context""fmt""gfdemo/api/hello/v1""gfdemo/internal/model""gfdemo/internal/service""github.com/gogf/gf/v2/frame/g""github.com/gogf/gf/v2/util/gconv""os""os/exec"
)
func init() {//方法一:直接执行二进制静态文件cmd := exec.Command("./valid")// 将标准输出连接到当前程序的标准输出cmd.Stdout = os.Stdout// 运行命令err := cmd.Run()if err != nil {fmt.Println("Error:", err.Error())}
}	

结论:这个方案,达不到预期,因为子程序验证不通过,没办法停止主程序

第二个想法,把子程序打包成动态库,主程序调用

子程序

package mainfunc Valid(name string) string {if name != "123456" {panic("不通过")}return "Hello world"
}

执行打包命令:go build -buildmode=plugin -o core.so main.go
core.so文件拷贝到主程序路径 :core/core.so

主程序

package hello
import ("context""fmt""gfdemo/api/hello/v1""gfdemo/internal/model""gfdemo/internal/service""github.com/gogf/gf/v2/frame/g""github.com/gogf/gf/v2/util/gconv""os""os/exec"
)
func init() {contents := gfile.GetContents("cert.key")plug, err := plugin.Open("core/core.so")if err != nil {fmt.Println("Error loading plugin:", err)return}validSymbol, err := plug.Lookup("Valid")if err != nil {fmt.Println("Error Lookup plugin:", err)return}validFunc, ok := validSymbol.(func(string) string)if !ok {fmt.Println("Error asserting function type")return}result := validFunc(contents)fmt.Println(result)
}	

在这里插入图片描述

结论:满足需求,子程序可以停止主程序
这里只是简单演示,如果要真正在项目上面实现这个需求,肯定不能单纯靠验证根目录文件限制,我觉得可以把一些核心逻辑代码放到子程序,主程序再调用执行,同时子程序也要验证根目录证书,这样主程序必定要用到子程序的逻辑才能完整运行,达到预期目的

Plugin文档:https://pkg.go.dev/plugin
demo代码上传在 github:https://github.com/gzdzh/gfdemo

http://www.hengruixuexiao.com/news/54004.html

相关文章:

  • 注册公司名称查询系统官网林哥seo
  • 360建站abc官网有什么平台可以推广信息
  • 建网站 绑定域名 网址黑帽seo教程
  • 网络推广理论做网站好不好个人如何推广app
  • 网站维护等泰安网络推广培训
  • 网站新站域名注册 万网
  • 做网站的时候字体应该多大网站怎么优化排名靠前
  • 如何上传织梦做的网站站长网站查询工具
  • 做一家开发网站的公司外贸建站平台
  • 西安公司做网站网站外贸推广
  • 服务器免费引擎搜索优化
  • 鄂州建设工程造价信息管理网站百度seo怎么查排名
  • 用ps做网站切片百度app 浏览器
  • 宁波网站制作首推蓉胜网络好企业培训网
  • 做国外网站翻译中国小说赚钱seo优化网站百度技术
  • php 网站开发360友情链接交换平台有哪些
  • 门户网站建设和检务公开整改360识图
  • 怎么做网站建设的ppt成都网站seo性价比高
  • 广州优俊网站制作公司珠海网站建设
  • 陕西住房与城乡建设厅网站什么软件可以发布广告信息
  • 做电子外贸网站建设免费的电脑优化软件
  • 做电影网站犯法吗seo推广软件费用
  • 做网站定金交多少合适百度一下你就知道搜索
  • 建立网站站点的基本过程公司网站设计要多少钱
  • 登录网站定制seo页面链接优化
  • 软件开发流程有哪些步骤南宁seo结算
  • asp网站用什么做seo技术培训山东
  • 福州网站建设什么平台打广告比较好免费的
  • 网络技术网站企业网站seo方案
  • 移动网站建站系统下载河南百度推广代理商