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

网站轮播图居中代码怎么写app开发成本预算表

网站轮播图居中代码怎么写,app开发成本预算表,西安网站建设网站排名优化,做网站需要什么技术员文章目录 开启一个项目编解码工具开发Dongle包Base64编解码摩斯密码URL加解密AES加解密 MD5碰撞工具开发 开启一个项目 这作为补充内容,可忽略直接看下面的编解码: 一开始用就按照下面的步骤即可 1.创建一个文件夹,你自己定义名字(建议只用…

文章目录

  • 开启一个项目
  • 编解码工具开发
    • Dongle包
      • Base64编解码
      • 摩斯密码
      • URL加解密
      • AES加解密
    • MD5碰撞工具开发

开启一个项目

这作为补充内容,可忽略直接看下面的编解码:
一开始用就按照下面的步骤即可

  • 1.创建一个文件夹,你自己定义名字(建议只用英文名字),你的项目文件夹
  • 2.在这个文件夹里创建一个main.go
  • 然后在该文件夹目录执行终端命令
go mod init 输入你的文件夹名字(说白了就是你的项目名字)
go mod download  //检查一下是否有没有下载的模块,这个我比较少用
go get -u 你的模块 //这里是下载你需要的对应模块
go mod tidy //可以将下载好的但是在你这项目中还没导入的模块进行导入使用,否则会报错到这里基本就可以写代码了,如果有的模块还错误一般就是没有执行go mod tidy

编解码工具开发

编解码在安全开发中肯定是必要的一个功能,通过编解码尝到开发甜头的同时也能够为后续开发打下基础。

Dongle包

这个包就是比较经典的一个编解码包,下面做一个简单的介绍如何使用

encode / decode

要使用这个包就需要下载一下,下面提供两个途径,一个国外一个国内
只需要下载一个,不建议下载两个,不知道会不会发生冲突

//github下载
go get -u github.com/golang-module/dongle//国内gitee下载
go get -u gitee.com/golang-module/dongle

Base64编解码

格式:
dongle.Encode.From来源.By编码类型.ToString转字符
dongle.Decode.From来源.By编码类型.ToString转字符

package mainimport ("fmt""github.com/dromara/dongle")func baseTest() {fmt.Println("==========Base64==========")baseStr := dongle.Encode.FromString("666").ByBase64().ToString()fmt.Println(baseStr)rawStr := dongle.Decode.FromString(baseStr).ByBase64().ToString()fmt.Println(rawStr)}func main() {baseTest()}

其他的可以自行操作,也就是说现在具备了写一个base全家桶编解码工具的能力了


接下来就是非常基本的代码了,下面附上以便以后方便使用

摩斯密码

以后我们写好的功能都可以用函数封装起来,以后写工具功能的时候直接拿来就用了,当然下面的我只是作为一个test测试函数。

func moreTest() {fmt.Println("==========More==========")morseStr := dongle.Encode.FromString("666").ByMorse().ToString()fmt.Println(morseStr)rawStr := dongle.Decode.FromString(morseStr).ByMorse().ToString()fmt.Println(rawStr)}

URL加解密

参考代码

func urlTest() {fmt.Println("==========URL==========")urlStr := dongle.Encode.FromString("hack=123").BySafeURL().ToString()fmt.Println("加密后的url数据:", urlStr)rawStr := dongle.Decode.FromString(urlStr).BySafeURL().ToString()fmt.Println("解密后的url数据:", rawStr)}

AES加解密

AES 加密有模式,所以要设置一个模式填充方式

完整代码

func aesTest() {fmt.Println("==========AES==========")aesCipher := dongle.NewCipher()aesCipher.SetMode(dongle.CBC)        //CBC、CFB、OFB、CTR、ECBaesCipher.SetPadding(dongle.Zero)    //No、Empty、Zero、PKCS5、PKCS7、AnsiX923、  ISO97971aesCipher.SetKey("1234567890123456") // key⻓度可以是16、24或32字节aesCipher.SetIV("1234567890123456")  // iv长度固定为16字节,ECB模式下不需要设置iv,这里看情况用就行了,只是做一个演示aesStr := dongle.Encrypt.FromString("hack").ByAes(aesCipher).ToRawString()fmt.Println("加密后的数据:", aesStr)rawStr := dongle.Decrypt.FromRawString(aesStr).ByAes(aesCipher).ToString()fmt.Println("解密后的数据:", rawStr)}

当然如果你觉得乱码看着不舒服,还能换不同的输出,这里简单过一遍,知道即可

func aesTest() {fmt.Println("==========AES==========")aesCipher := dongle.NewCipher()aesCipher.SetMode(dongle.CBC)        //CBC、CFB、OFB、CTR、ECBaesCipher.SetPadding(dongle.Zero)    //No、Empty、Zero、PKCS5、PKCS7、AnsiX923、  ISO97971aesCipher.SetKey("1234567890123456") // key⻓度可以是16、24或32字节aesCipher.SetIV("1234567890123456")  // iv长度固定为16字节,ECB模式下不需要设置iv,这里看情况用就行了,只是做一个演示aesStr := dongle.Encrypt.FromString("hack").ByAes(aesCipher).ToRawString()fmt.Println("加密后的raw数据:", aesStr)rawStr := dongle.Decrypt.FromRawString(aesStr).ByAes(aesCipher).ToString()fmt.Println("解密后的raw数据:", rawStr)aesStr = dongle.Encrypt.FromString("hack").ByAes(aesCipher).ToBase64String()fmt.Println("加密后的base64数据:", aesStr)rawStr = dongle.Decrypt.FromBase64String(aesStr).ByAes(aesCipher).ToString()fmt.Println("解密后的base64数据:", rawStr)aesStr = dongle.Encrypt.FromString("hack").ByAes(aesCipher).ToHexString()fmt.Println("加密后的hex数据:", aesStr)rawStr = dongle.Decrypt.FromHexString(aesStr).ByAes(aesCipher).ToString()fmt.Println("解密后的hex数据:", rawStr)}

MD5碰撞工具开发

需求:能够根据一个密码本对某个md5值进行碰撞解密
思路:就是打开文件读取每一行,加密然后碰撞比较md5值是否正确
比如我们输入top2k字典中最后一个密码作为md5值


参考代码:(注意我加了一个时间计算,那个是可以不要的,我只是想看下计算时间有多长罢辽)

func fuzzMd5(md5str string) {open, err := os.Open("top2k.txt")if err != nil {fmt.Println(err)return}defer open.Close()scanner := bufio.NewScanner(open)// 逐个读取分割后的内容start := time.Now() // 获取当前时间for scanner.Scan() {passwd := scanner.Text()passwdMD5 := dongle.Encrypt.FromString(passwd).ByMd5().ToHexString()if string(passwdMD5) == md5str {fmt.Printf("%v:%v\n", passwdMD5, passwd)end := time.Now() // 获取当前时间fmt.Println("耗时:", end.Sub(start).Seconds())return}}end := time.Now() // 获取当前时间fmt.Println("耗时:", end.Sub(start).Seconds())if err := scanner.Err(); err != nil {fmt.Println("Error:", err)}}

main函数调用如下

运行结果如下:

这就是一个简单的md5碰撞工具了,目前所学知识还只能做到这样比较简陋,后面两期打算讲一个脚手架开发工具,加速开发的同时,可以让你自己写的命令行工具看起来就是一个完整的hacker工具了。

http://www.wangmingla.cn/news/30093.html

相关文章:

  • 编程课网课哪家好seo赚钱
  • 郑州自建网站培训心得模板
  • 大同建设局网站百度知道网址
  • 做信息分类网站难吗长沙网站seo推广公司
  • 局门户网站的建设方案推广策略及推广方式
  • b2b电子商务网站方案潮州seo
  • 免费交友软件app前十名真正免费清远网站seo
  • 附近的网站设计制作价格湛江seo推广公司
  • 电商代运营公司排行榜seop
  • 个人主页源码关键词优化到首页怎么做到的
  • 12306网站为什么做那么差外贸建站公司
  • 湖北工程建设总承包有限公司网站网络营销产品概念
  • 做网站怎么推广收益大怎么做游戏推广员
  • 定制 网站网络营销ppt案例
  • 网站开发职业访谈长沙线上引流公司
  • wordpress 自定义翻页宁波seo搜索引擎优化公司
  • 自学建百度首页网站太原seo软件
  • 湖北智能网站建设推荐夫唯seo怎么样
  • 上海优化网站 优帮云怎样把个人介绍放到百度
  • 公司网站 域名 cn com最有效的推广方法
  • 深圳建设工程项目网站推广放单平台
  • 教你做兼职的网站最近七天的新闻重点
  • 做高端网站的网络公司搜索历史记录
  • 中国廉政建设网是正规网站吗谷歌google play官网
  • 怎么创建公众号微信成都seo学徒
  • 怎么把网站制作成安卓crm系统网站
  • 泗洪网站建设公司个人怎么做推广
  • Wordpress 主题 修改 版淘宝seo搜索引擎原理
  • 做任务兼职赚钱的网站seo优化公司信
  • wordpress博客动漫主题旺道seo怎么优化网站