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

新密网站建设我赢seo

新密网站建设,我赢seo,网站改版的方式大致为,wordpress去除标志SHA(secure hashing algorithm)表示安全哈希算法.SHA是MD5的修正版本#xff0c;用于数据摘要和认证。哈希和加密类似#xff0c;唯一区别是哈希是单项的#xff0c;即哈希后的数据无法解密。SHA有不同的算法#xff0c;主要包括SHA-1, SHA-2, SHA-256, SHA-512, SHA-224, …SHA(secure hashing algorithm)表示安全哈希算法.SHA是MD5的修正版本用于数据摘要和认证。哈希和加密类似唯一区别是哈希是单项的即哈希后的数据无法解密。SHA有不同的算法主要包括SHA-1, SHA-2, SHA-256, SHA-512, SHA-224, and SHA-384等其中SHA-256是SHA-2家族的一个成员它把原数据转为256字节固定长度摘要信息SHA256的内部块大小为32位。本文介绍Golang如何使用sha256算法实现对配置文件的监控。 Golang hash256实现包 hash256包实现了FIPS 180-4规范中定义的SHA224、SHA256哈希算法。主要包括下面几个函数 func New() hash.Hash: 返回 hash.Hash用于计算SHA256哈希值。 func Sum256(data []byte) [Size]byte :返回计算SHA256的哈希值。 使用sha256.New() 下面示例使用New()函数返回Hash.hash: package mainimport (crypto/sha256fmt )func main() {h : sha256.New()h.Write([]byte(this is a password))// Calculate and print the hashfmt.Printf(%x, h.Sum(nil)) }过程很简单运行输出结果 289ca48885442b5480dd76df484e1f90867a2961493b7c60e542e84addce5d1e使用sha256.Sum256()函数 package mainimport (crypto/sha256fmt )func main() {sum : sha256.Sum256([]byte(this is a password))fmt.Printf(%x, sum) }更简洁输出结果一样。 下面示例展示两个字符串尽管只有一个字符微小差异但生成的hash却完全不同 package mainimport (crypto/sha256fmt )func main() {sum : sha256.Sum256([]byte(this is a password))sumCap : sha256.Sum256([]byte(This is a password))fmt.Printf(lowercase hash: %x, sum)fmt.Println()fmt.Printf(Capital hash: %x, sumCap) }运行输出结果 lowercase hash: 289ca48885442b5480dd76df484e1f90867a2961493b7c60e542e84addce5d1e Capital hash: 9ae12b1403d242c53b0ea80137de34856b3495c3c49670aa77c7ec99eadbba6e监控配置文件变化 我们需要观察文件是否变化标准实现使用time.Ticker每隔几秒重新计算配置文件的哈希值如果哈希值发生变化则重新加载。 获取配置hash值 func getCfgHash() string {file, err : os.Open(test.cfg)defer file.Close()if err ! nil {panic(err)}hash : sha256.New()if _, err : io.Copy(hash, file); err ! nil {panic(err)}sum : fmt.Sprintf(%x, hash.Sum(nil))return sum }上面方法步骤 打开配置文件从crypto/sha256创建hash.Hash对象解析文件内容到hash对象调用Sum方法获得hash值 上面示例中test测试文件可以随便输入一些内容生成文件hash值。 下面实现比较hash值方法 func compare(new string) bool {var oldStr oldFile, _ : os.Open(tmp.hash)oldBytes, _ : io.ReadAll(oldFile)oldStr string(oldBytes)oldFile.Close()if oldStr ! new {newFile, _ : os.Create(tmp.hash)fmt.Println(new hash:, new)newFile.WriteString(new)RefreshCfg()return false}return true }先加载上一次保存的配置文件hash值与本次传入最新hash值进行比较如不同则保存最新hash值用于下一次比较同时调用RefreshCfg()方法该方法是具体业务实现这里仅给出空实现 func RefreshCfg() {fmt.Println( refresh config information.) } 最后是main函数部分 func main() {// 先记录配置文件hash值cfgHash : getCfgHash()fmt.Println(cfg hash:, cfgHash)file, _ : os.Create(tmp.hash)file.WriteString(cfgHash)file.Close()// define an interval and the ticker for this intervalinterval : time.Duration(2) * time.Second// create a new Tickertk : time.NewTicker(interval)// start the ticker by constructing a loopfor range tk.C {fmt.Println(time running...)loadStr : getCfgHash()if !compare(loadStr) {fmt.Println(config file has changed...)}} }首先保存当前配置文件的Hash值。然后利用Ticker每2秒比较一次比较。运行程序修改配置文件可以立刻看到程序监控到变化并调用RefreshCfg方法。 下面给出完整代码实现 package mainimport (crypto/sha256timefmtioos )func main() {// 先记录配置文件hash值cfgHash : getCfgHash()fmt.Println(cfg hash:, cfgHash)file, _ : os.Create(tmp.hash)file.WriteString(cfgHash)file.Close()// define an interval and the ticker for this intervalinterval : time.Duration(2) * time.Second// create a new Tickertk : time.NewTicker(interval)// start the ticker by constructing a loopfor range tk.C {fmt.Println(time running...)loadStr : getCfgHash()if !compare(loadStr) {fmt.Println(config file has changed...)}} }func RefreshCfg() {fmt.Println( refresh config information.) }func getCfgHash() string {file, err : os.Open(test.cfg)defer file.Close()if err ! nil {panic(err)}hash : sha256.New()if _, err : io.Copy(hash, file); err ! nil {panic(err)}sum : fmt.Sprintf(%x, hash.Sum(nil))return sum }func compare(new string) bool {var oldStr oldFile, _ : os.Open(tmp.hash)oldBytes, _ : io.ReadAll(oldFile)oldStr string(oldBytes)oldFile.Close()if oldStr ! new {newFile, _ : os.Create(tmp.hash)fmt.Println(new hash:, new)newFile.WriteString(new)RefreshCfg()return false}return true }总结 数据加密算法规范非常复杂在大多数应用场景中需要广泛研究。但Golang提供了专门的库实现了许多流行的加密算法。本文演示了如何使用crypto/sha256对配置文件进行监控变化则重新加载配置文件。
http://www.dnsts.com.cn/news/63518.html

相关文章:

  • 济南市住房建设网站网站如何带来流量
  • 腾讯广告投放端提供的建站工具有有哪些网站是cms
  • 房地产公司网站源码深圳十大品牌策划公司
  • dede手机网站360网址导航上网
  • 网站建设一点通wordpress修改首页代码
  • 济南网站建设哪家公司好丰台网站建设公司电话
  • 网站服务器租赁多少钱团队做网站分工
  • 郑州网站开发网站开发怎样做网站底部导航
  • 上海微信小程序网站建设网站建设意见征求
  • 网站建设公司平台新网站怎么运营
  • 电商网站建设注意如何苗木网站建设
  • 昊诺网站建设网络推广潢川微信网站建设
  • 基于php网站开发的参考文献手机app设计网站
  • 专业科技公司网站欣赏智慧团建网页手机版官网
  • 东莞网站建设网站制作公司有网页源码 怎么做网站
  • 新手用什么程序建网站公司网站域名和空间使用费
  • 网站开发的项目流程图自己的ip做网站
  • 高校网站建设及管理制度动漫网站建设毕业设计
  • 花都网站推广网页制作教程步骤
  • 如何查询网站注册信息安阳流调报告
  • 2003访问网站提示输入用户名密码东营百度推广公司
  • 网站开发视频转码大学校园门户网站建设
  • 企业如何实现高端网站建设化妆品网站做的好的
  • 响应式中文网站模板手机浏览器网页加速器
  • 北京好用的h5建站网页设计课程的总结
  • 做展厅的网站网站域名列表
  • 南通企业网站建设公司做搜狗手机网站
  • 如何做网站子页个人做网站郊游的英
  • 紫金网站制作重庆建企业网站
  • 和国外做贸易用什么网站数学 wordpress