Go语言中文网 为您找到相关结果 308

Golang计算MD5

Golang计算MD5 1.单向加密 什么是单向加密算法。简而言之就是不可解密的加密方法,也叫作非可逆加密。这些学术 解释都不用管它,反正就是一群数学家老爷爷通过各种证明得到的一种方法,用这种方法加密 过的东西,地球上现有的人类在有限的时间内是无法解密的,包括加密者自己。既然加密者自己 都无法解密,那这乖僻的加密算法有个毛用阿?哪些场景需要这种有去无回的加密方式呢? 这里先了解下单向加密的特征: 首先,不可解密性在上面已经提到了,目的就是掩藏明文。其次单向加密算法的另外两个特征 使得它更接地气,第一是任意两段明文数据,加密以后的密文不能是相同的; 第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。这样当我们需要表征一段 唯一的内容,但是有不想别人知道该段内容时或者仅仅是为一个内容...阅读全文

博文 2014-12-30 12:00:01 YangJunjie

golang zip 压缩,解压(含目录文件)

每天学习一点go src。 今天学习了zip包的简单使用,实现了含目录的压缩与解压。 写了两个方法,实现了压缩、解压。 package ziptest import ( "archive/zip" "io" "os" "strings" ) //压缩文件 //files 文件数组,可以是不同dir下的文件或者文件夹 //dest 压缩文件存放地址 func Compress(files []*os.File, dest string) error { d, _ := os.Create(dest) defer d.Close() w := zip.NewWriter(d) defer w.Close() for _, file := range files { err := compress...阅读全文

博文 2016-07-06 00:00:00 xiaofengshuyu

《Golang 入门系列一》安装和IDE介绍

前言:本文主要介绍Golang的安装和Golang的编辑器的使用,以及我们的第一个经典案例:Hello World. 一、为什么是Golang Golang 又称为 Go,是由 Google 开发的一种开源的、编译型的、静态类型的编程语言。它具有以下特性: Go原生支持并发(Concurrency),因此非常适合编写多线程程序。 Golang 是编译型语言。源代码会被编译成可执行的二进制文件。 Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对象语言更轻量级。 二、Golang开发工具包的选择 我们可以根据自己的机器操作系统选择相应的开发工具包,比如你的是Windows 64位的,就选择windows-amd64的工具包;是L...阅读全文

博文 2017-12-10 15:03:07 IT--小哥

goproxy和msocks简介

goproxy是我个人写的,和shadowsocks同类的软件。当然,在设计之初我完全不知道shadowsocks的存在,goproxy的最初目标也不是成为shadowsocks的同类。只是我一直无法实现一个可靠的,能够达成目标的系统。最后想,那这样吧,我找一个跳一跳能够够到的苹果。大幅简化的结果就是goproxy——后来我才知道shadowsocks。 shadowsocks的基本原理 shadowsocks的基本概念,就是利用某种不同于SSL的协议,将本地的socks数据流转发到远程。这个协议,在默认版本中是一个凯撒变换,后来有了aes等加密算法。goproxy也采用了类似的做法,同样支持aes等加密算法。在每次连接时,客户端先用加密通道连接服务器端,然后完成整个连接通路。这样的设计鲁棒...阅读全文

博文 2014-10-06 06:06:32 shell909090

golang gzip 压缩bytes 和解压

func main() { size := 1 datasSlice := make([][]byte, size) for i := 0; i < size; i++ { datasSlice[i], _ = ioutil.ReadFile("images/" + strconv.Itoa(i+1) + ".jpg") fmt.Println("raw size:", strconv.Itoa(i)+".jpg :", len(datasSlice[i])) } var b bytes.Buffer w := gzip.NewWriter(&b) defer w.Close() for i := 0; i < size; i++ { w.Write(datasSlice[i]) } w.F...阅读全文

博文 2014-10-04 19:27:08 咖啡伴侣

golang中的加密方式总结

缘起 因为项目中使用mysql的AES_DECRYPT方法,欲使用golang实现该方法, 但是研究了半天没明白怎么回事, 最后才发现golang当前默认支持CBC的方式,但是mysql当前使用的是ECB模式, 所以需要使用者分组分块加密,特总结一下golang中的各个加密算法 关于密码学 当前我们项目中常用的加解密的方式无非三种.对称加密, 加解密都使用的是同一个密钥, 其中的代表就是AES非对加解密, 加解密使用不同的密钥, 其中的代表就是RSA签名算法, 如MD5、SHA1、HMAC等, 主要用于验证,防止信息被修改, 如:文件校验、数字签名、鉴权协议 AES AES:高级加密标准(Advanced Encryption Standard),又称Rijndael加密法,这个标准用来替代...阅读全文

博文 2018-10-20 19:34:42 pengj

让互联网更快的协议,QUIC在腾讯的实践及性能优化

作者|罗成 编辑|小智 本文主要介绍 QUIC 协议在腾讯内部及腾讯云上的实践和性能优化。欲了解 QUIC 协议产生的背景和核心特性,可阅读今日二条推文。 写在前面 如果你的 App,在不需要任何修改的情况下就能提升 15% 以上的访问速度。特别是弱网络的时候能够提升 20% 以上的访问速度。如果你的 App,在频繁切换 4G 和 WIFI 网络的情况下,不会断线,不需要重连,用户无任何感知。如果你的 App,既需要 TLS 的安全,也想实现多路复用的强大。如果你刚刚才听说 HTTP2 是下一代互联网协议,如果你刚刚才关注到 TLS1.3 是一个革命性具有里程碑意义的协议,但是这两个协议却一直在被另一个更新兴的协议所影响和挑战。如果这个新兴的协议,它的名字就叫做“快”,并且正在标准化为新一代...阅读全文

Golang 字符串比较,一个不大不小的坑

背景是酱紫的,对一串字符串做了AES解密后得到的密文,从密文中截取了签名,和之前存在数据库里的签名进行比较验签的时候,一直失败,打印两个签名值出来看,一模一样... Google后在一篇博客里发现了这句'String values are compared byte-wise (lexically).' and 'zero value for string is "" ',大概的意思就是,string 的比较实际上是比较对应的byte数组的,之后打印了两个签名的byte值,玄机显现,密文中的签名值最后有7,7,7,7,7]这样的值,目测是进行AES加密的时候加密算法补位导致的... 解决办法,根据数据库中签名值的长度对密文中的签名做了截取,然后比较,妥了... 推荐阅读:AES 图文详解,G...阅读全文

博文 2015-08-06 16:00:01 冰河垂钓

AlphaGo的论文的译文,关于深度神经网络,蒙特卡洛树搜索:Mastering the game of Go with deep neural networks and tree search

前言: 围棋的英文是 the game of go,标题翻译为:《用深度神经网络和树搜索征服围棋》。译者简介:大三,211,计算机科学与技术专业,平均分92分,专业第一;英文水准:托福 103分,GRE v158 + q167 + AW3.5。为了更好地翻译此文,笔者查看了很多资料。笔者翻译此论文已尽全力,不足之处希望读者指出。 在AlphaGo的影响之下,全社会对人工智能的关注进一步提升。在笔者考完GRE的当天,3月12日,AlphaGo 第三次击败李世石。在3月15日总比分定格为4:1,随后AlphaGo的围棋排名世界来到第二。 论文的英文原文点击这里拜读 编者按:吐槽CSDN的后台服务器,在我用LaTeX编写的公式结尾都加上了一个“|”,比如:公式公式。这真是一个醉人的Bug。2014...阅读全文

博文 2016-03-22 19:00:01 u013390476

golang shadowsock 安装部署

最近一直在用ss但是python的并发并不是很好所以我改换成golang 的ss了。代码下载 编译好的直接下载 server配置(跟官方的不一样): 新建文件夹 进入文件夹后新建文件:config.json pid.cfg start.sh test.log config 是server运行的配置文件 pid.cfg 是server运行的进程号记录的位置 start.sh 是服务启动时候运行的脚本 test.log 这个是排查故障的时候用的错误记录文件 config.json 12345678{ "server":"XXX.com", //服务器ip地址或者绑定的域名 "server_port":8088, // 运行的端口 "local_port":1080, //本地运行端口 "pass...阅读全文

博文 2015-03-09 12:02:02 jianyingLi

Win7配置Go环境

最近想学习下Go语言,先从最基本的Hello Go开始,搭建Go开发环境 一、下载Go包 由于Go官网国内访问经常有问题,可以从国内的镜像下载: http://www.golangtc.com/ 二、配置环境变量 1、将Go的压缩包解压到任意目录,我的为D:\SDE\go 2、 配置GoRoot路径 3、配置Path路径 4、配置Go程序工作目录GOPATH 配置完成以上环境变量后,我们可以在命令行窗口中查看配置是否成功,这里我使用cygwin 输入go version命令 出现Go的版本号则说明配置成功! 三、在GOPATH配置的工作目录中新建main.go文件,编写如下代码 1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main() {...阅读全文

博文 2015-05-15 03:00:01 cyuan

Golang加密系列之AES

这里我们只讨论使用aes加密算法,pkcs7padding,CBC模式模式进行加密。 加密代码: func Encrypt(plantText, key []byte) ([]byte, error) { block, err := aes.NewCipher(key) //选择加密算法 if err != nil { return nil, err } plantText = PKCS7Padding(plantText, block.BlockSize()) blockModel := cipher.NewCBCEncrypter(block, key) ciphertext := make([]byte, len(plantText)) blockModel.CryptBlocks(c...阅读全文

博文 2015-09-02 11:00:01 君子藏锋

golang tar gzip 压缩,解压(含目录文件)

tar是用于文件归档,gzip用于压缩。仅仅用tar的话,达不到压缩的目的。我们常见的tar.gz就是用gzip压缩生成的tar归档文件。 go实现tar压缩与解压与zip类似,区别在于tar需要使用gzip进行处理。tar与zip的Header不同。代码如下 package tartest import ( "archive/tar" "compress/gzip" "io" "os" "strings" ) //压缩 使用gzip压缩成tar.gz func Compress(files []*os.File, dest string) error { d, _ := os.Create(dest) defer d.Close() gw := gzip.NewWriter(d) defe...阅读全文

博文 2016-07-08 08:00:00 xiaofengshuyu

mac:Go安装和配置+GoLand安装和使用之完整教程

前言 作为一个go语言程序员,觉得自己有义务为go新手开一条更简单便捷的上手之路。纵使网上教程很多,但总不尽人意。go的入门门槛还是非常低的,无论是安装还是使用。 go安装 go 语言支持以下系统: Linux Mac OS X(也称为 Darwin) Window FreeBSD 本文将介绍mac下的安装和使用教程 安装包下载地址(下面3个都可以): https://studygolang.com/dl https://golang.google.cn/dl/ https://golang.org/dl/ 步骤: 打开安装包下载页面 . 选择go1.10.2.darwin-amd64.tar.gz,单击连接就开始下载到本机了。这里选择的稳定(stable)版本是1.10.2,当然你也可以选...阅读全文

博文 2018-12-31 18:31:02 zxy_666

geohash算法以及求最邻近区域的点-golang

geohash算法以及求最邻近区域的点, 对这两个算法封装成了golang package, 写LBS服务程序的时候有用。https://github.com/gansidui/geohashhttps://github.com/gansidui/nearest package main import ( "fmt" "github.com/gansidui/geohash" ) func main() { latitude := 39.92324 longitude := 116.3906 precision := 5 hash, box := geohash.Encode(latitude, longitude, precision) fmt.Println(hash) fmt.Prin...阅读全文

博文 2014-12-30 13:00:01 bluezwt

golang zlib 压缩,解压缩

package main import ( "bytes" "compress/zlib" "fmt" "io" "os" ) //进行zlib压缩 func DoZlibCompress(src []byte) []byte { var in bytes.Buffer w := zlib.NewWriter(&in) w.Write(src) w.Close() return in.Bytes() } //进行zlib解压缩 func DoZlibUnCompress(compressSrc []byte) []byte { b := bytes.NewReader(compressSrc) var out bytes.Buffer r, _ := zlib.NewReader(b) io...阅读全文

博文 2015-03-10 03:00:00 zhangqingping

微信小程序解码工具

项目地址 https://github.com/sjatsh/unw... & 个人博客 https://sjatsh.com 起因 前段时间想学习微信小程序开发但是又没有什么深厚前端功底,看到很多很好玩的小程序想要做一个类似的学习学习,所以想着借鉴一下现有的小程序。但是苦于没有源码,抓包也没有办法获取源码。 google后知道可以用安卓模拟器安装微信然后安装小程序,然后在文件系统中找到小程序对应的wxapkg文件,拿到压缩包解压后就可以得到小程序源码。 但是压缩包是2进制文件,找了一遍后发现一个现有现有的开源项目可以直接解压小程序压缩包。 废话不多说,直接开干~ 获取小程序压缩包文件一、下载网易MuMu安卓模拟器 下载地址 http://mumu.163.com/ 二、安装微信和RE文件管...阅读全文

博文 2019-01-08 01:34:44 打瞌睡滴花花

解决go get无法下载被墙的包

1、使用gopm代替go下载 //使用gopm(Go Package Manager)代替go下载,是go上的包管理工具,十分好用 //1. 下载安装gopm go get -u github.com/gpmgo/gopm //2. 使用gopm安装被墙的包 gopm get github.com/Shopify/sarama 2、使用镜像仓库 golang 在 github 上建立了一个镜像库,如 https://github.com/golang/net 即是 https://golang.org/x/net 的镜像库.获取 golang.org/x/net 包(其他包类似),其实只需要以下步骤: mkdir -p $GOPATH/src/golang.org/x cd $GOPATH/...阅读全文

博文 2019-03-03 11:34:42 yongfutian

golang中compress/gzip

go标准库的gzip包中提供了两个操作,分别是压缩和解压 常量和变量 const ( NoCompression = flate.NoCompression // 不压缩 BestSpeed = flate.BestSpeed // 最快速度 BestCompression = flate.BestCompression // 最佳压缩比 DefaultCompression = flate.DefaultCompression // 默认压缩比 ) var ( // 当读取gzip数据时发现无效的校验和时将返回该错误 ErrChecksum = errors.New("gzip: invalid checksum") // 当读取gzip数据时发现无效的数据头时将返回该错误 ErrHead...阅读全文

博文 2018-12-07 13:34:43 laijh

联盟链战国:五大巨头横向对比

先说两句:这篇文章和作者一起搜集了大量资料,后被作者码成了万字足料文,可以作为联盟链底层平台选择参考,喜欢请点赞。联盟链是目前区块链落地实践的热点,也是大家对“杀手级应用”期望最大的区块链部署形态。联盟链的诞生源于对区块链技术的“反思”,是对比特币、以太坊所体现的技术特点与企业客户实际需要的融合与折衷,蕴含了大量区块链工作者的智慧与辛劳。由于对未来价值的“共识”,很多厂商推出了自己的联盟链框架或平台,本文选择了 Hyperledger Fabric、FISCO BCOS、微软的 Coco、企业以太坊联盟(EEA)及 R3 的 Corda 这五个具有一定影响力的联盟链,拟从设计理念、生态、效率、扩展性、节点管理与权限管理、智能合约、部署与运维友好性、隐私保护、公链结合或演化能力九个方面进行比对...阅读全文

博文 2018-10-23 12:34:41 区块链名媛

golang实现分页算法

```go //分页方法,根据传递过来的页数,每页数,总数,返回分页的内容 7个页数 前 1,2,3,4,5 后 的格式返回,小于5页返回具体页数 func Paginator(page, prepage int, nums int64) map[string]interface{} { var firstpage int //前一页地址 var lastpage int //后一页地址 //根据nums总数,和prepage每页数量 生成分页总数 totalpages := int(math.Ceil(float64(nums) / float64(prepage))) //page总数 if page > totalpages { page = totalpages } if page ...阅读全文

博文 2018-09-10 16:01:03 JimPang

go语言中椭圆曲线加密算法的使用

椭圆曲线加密算法,使用golang的实现! 最近在看一些关于比特币的东西,里边有个椭圆曲线加密算法,查了下,感觉很不错! 与经典的RSA,DSA等公钥密码体制相比,椭圆密码体制有以下优点: 1.安全性高:有研究表示160位的椭圆密钥与1024位的RSA密钥安全性相同。 2.处理速度快:在私钥的加密解密速度上,ecc算法比RSA、DSA速度更快。 3.存储空间占用小。 4.带宽要求低. 椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。当n=234, 约为2117,需要1.6x1023 MIPS 年的时间。而我们熟知的RSA所利...阅读全文

博文 2016-10-09 07:00:05 IrvinYoung

你也能写个 Shadowsocks

本文将教你从0写一个Shadowsocks,无需任何基础,读完本文你就能完成一个轻量级、高性能的 Shadowsocks 代替品。 我们暂且把最终完成的项目叫做 Lightsocks,如果你很急切地想看到结果,可以先体验本文最终完成的项目 Lightsocks ,也可以下载阅读源码。 认识 Shadowsocks Shadowsocks 是一个能骗过防火墙的网络代理工具。它把要传输的原数据经过加密后再传输,网络中的防火墙由于得不出要传输的原内容是什么而只好放行,于是就完成了防火墙穿透,也即是所谓的“翻墙”。 在自由的网络环境下,在本机上访问服务时是直接和远程服务建立连接传输数据,流程如图: 但在受限的网络环境下会有防火墙,本机电脑和远程服务之间传输的数据都必须通过防火墙的检查,流程如图:如果...阅读全文

博文 2017-11-05 06:04:50 吴浩麟

golang使用jwt

0x0 什么是jwt JWT是JSON Web Token的缩写,可以用作授权认证。传统的授权认证一般采用session,由于session存储在服务端,加大了服务端的计算量, 而且多台服务器之间存在着session同步的问题。而JWT存储在客户端,不仅减少了服务端的计算量,而且天生支持分布式。 0x1 jwt的结构 JWT由三部分组成: Header:头部,表明类型和加密算法 Claims:声明,即载荷(承载的内容) Signature:签名,这一部分是将header和claims进行base64转码后,并用header中声明的加密算法加盐(secre)后构成。 即: tmpstr = base64(header)+base64(claims) signature = encrypt(tm...阅读全文

博文 2017-12-17 22:00:00 xdao

Blockchain区块链基于go-ethereum实现的dpos共识算法

这个项目基于go-ethereum-1.9.8,实现dpos算法,项目参考了以太坊项目的POA算法和GTTC 项目的Dpos算法,引入投票来选取候选人,有关的Dpos信息存在区块Header的Extra字段,利用其Token来投票,就是你有多少Eth,就可以投多少票,投票后扣除相应帐号的Eth, 经过一个Epoch,候选人重新从投票结果中产生。项目正在完善中,以后期望通过修改虚拟机,修改让Eth成为投票资源,类似xuperchain,项目还有很多不足之处,请多多指教和欢迎参与...阅读全文

开源项目 2021-02-02 23:04:24 mingjingc

实习X全职 | 区块链人才找工作?超全的大公司区块链技术招聘合集!

芥末圈世界需要你的见解更多高品质区块链资讯欢迎关注微信公众号(ID:jemoonews) 实习生中国电信1 / 区块链开发实习生任职要求:一周能够工作至少4天,实习12个月,可转正1. 参与基于区块链的产品开发,主要工作内容为模型角色搭建、以及编程实现;2. 要求熟悉基本加密算法如RSA、DES、HASH算法;3. 主要工作语言为JAVA,了解python或者R语言更佳;4. 要求计算机、软件、通信及相关专业。坐标:北京市昌平区未来科学城全职:技术类火币网2 / C++语言区块链工程师岗位要求:1.区块链技术分析:虚拟机/密码学/分布式系统/信息安全等2.区块链资产的主链对接、节点维护与测试3.主链数据服务研发4.主链/公链/联盟链研发任职要求:1.计算机、数学或金融学相关专业2.良好的英语...阅读全文

博文 2018-07-12 17:34:49 芥末圈

常见的加密算法

在项目开发过程中,当我们利用数据库存储一些关于用户的隐私信息,诸如密码、帐户密钥等数据时,需要加密后才向数据库写入。这时,我们需要一些高效地、简单易用的加密算法,当我们向数据库写数据时加密数据,然后把加密后的数据存入数据库;当需要读取数据时,从数据库把加密后的数据取出来,再通过算法解密。 常用的加密算法有Base64、MD5、AES和DES。 Base64 Base64是一种任意二进制到文本字符串的编码方法,常用于在URL、Cookie、网页中传输少量二进制数据。 首先使用Base64编码需要一个含有64个字符的表,这个表由大小写字母、数字、+和/组成。采用Base64编码处理数据时,会把每三个字节共24位作为一个处理单元,再分为四组,每组6位,查表后获得相应的字符即编码后的字符串。编码后的...阅读全文

博文 2017-06-25 09:07:21 witchiman

golang压缩和解压缩zip文件

golang压缩和解压缩zip文件 一个简单例子说明如何使用golang提供的archive/zip包实现zip文件的压缩和解压缩。 压缩 提供两个参数: 一个是输入源文件 另一个是输出zip压缩文件 其中输入源文件可以是一个文件,也可以好似一个目录,如果是目录那么目录下的所有文件都会被压缩到输出。 当然这个函数很容易被扩展成支持多个输入源文件/目录的情况。 // srcFile could be a single file or a directory func Zip(srcFile string, destZip string) error { zipfile, err := os.Create(destZip) if err != nil { return err } defer z...阅读全文

博文 2018-10-01 11:34:39 CodingCode

常见哈希函数FNV和MD5

介绍哈希函数之前,先说一下Golang的哈希结果。在包/hash/下的hash.go文件,定义了哈希函数的接口。所有哈希函数都要实现此接口。 // Hash is the common interface implemented by all hash functions. type Hash interface { // Write (via the embedded io.Writer interface) adds more data to the running hash. // It never returns an error. io.Writer // Sum appends the current hash to b and returns the resulting sli...阅读全文

go 语言zip压缩包 读取

今天看了一下go语言的zip压缩包的操作。 每天看一点go的包,动手写几个例子感觉还是有点收获的,多动手才能有所进步。 先附上代码。testzip.go package main import ( "archive/zip" "bufio" "fmt" "io" "os" ) func main() { rc, err := zip.OpenReader("test/hello.zip") if err != nil { defer rc.Close() } for _, _file := range rc.File { fmt.Println(_file.Name) f, _ := _file.Open() desfile, err1 := os.OpenFile(_file.Name, ...阅读全文

博文 2015-03-03 14:00:00 king1076

golang多版本管理器

g是一个Linux、macOS、Windows下的命令行工具,可以提供一个便捷的多版本go环境的管理和切换。 特性 支持列出可供安装的go版本号 支持列出已安装的go版本号 支持在本地安装多个go版本 支持卸载已安装的go版本 支持在已安装的go版本之间自由切换 安装 自动化安装 Linux/macOS(适用于bash、zsh) # 建议安装前清空`GOROOT`、`GOBIN`等环境变量 $ wget -qO- https://raw.githubusercontent.com/voidint/g/master/install.sh | bash $ echo "unalias g" >> ~/.bashrc # 可选。若其他程序(如'git')使用了'g'作为别名。 $ source ~...阅读全文

博文 2019-05-17 23:34:38 voidint

go语言实现7大排序算法

package main import ( "fmt" "math/rand" "time" // "os" // "os/signal" ) const ( num = 100000 rangeNum = 100000 ) func main() { randSeed := rand.New(rand.NewSource(time.Now().Unix() + time.Now().UnixNano())) var buf []int for i := 0; i < num; i++ { buf = append(buf, randSeed.Intn(rangeNum)) } t := time.Now() //冒泡排序 // maopao(buf) // 选择排序 // xuanze(b...阅读全文

博文 2017-03-25 04:00:35 徐学良

golang实现wav文件转换为mp3文件

本文并非golang内置的库进行wav转mp3,而是通过golang调用Linux的lame命令进行转换。 在Linux环境下,默认情况是没有安装lame,所以首先需要安装lame(个人保存下载文件:http://pan.baidu.com/s/1qWp71G4#path=%252Fsharesoft%252Flinux%252Flame)。 Linux lame 安装及使用: 1. 解压lame压缩文件:tar -vzxf lame-3.98.4.tar.gz 2. 转到解压后的文件目录,依次执行:“./configure --enable-shared”,“make”,“make install” 3. lame使用方法:lame xxx.wav xxx.mp3 (这样就能把xxx.wa...阅读全文

博文 2015-07-11 03:00:02 hezhixiong

百度云推送

百度云推送支持通知、消息和富媒体的发送。我只实现了最简单的群推送通知的功能。还有针对指定ID的发送,指定通知布局,指定打开网页等一系列设置都没有包含。接下来还要用到这个的时候再去进行开发好了。 关于Android端的推送,有Google的官方支持,但是大家懂得,只能另寻它法。Android不同于iOS,它运行程序在后台有常驻进程。所以就有了其它通知方法。这样就可以由后台进程获取到通知内容后自行展示。发送通知还能用IBM的MQTT,虽然我在他们部门实习过,但是这个东西不会用。。。还有自己实现HTTP长连接Keep-Alive,发送Request之后等待Response。这些都是目前常用的方法,我都不会。那么,我就去找了现成的百度云推送。 百度提供了两种实现方式:SDK和REST API。SDK...阅读全文

博文 2017-02-09 12:18:57 Bryce

golang中archive/tar包用法

tar包实现对tar归档文件的访问,旨在覆盖大部分的类型,包括GNU和BSD产生的tars。 常量 const ( // Types TypeReg = '0' // 普通文件 TypeRegA = '\x00' // 普通文件 TypeLink = '1' // 硬连接 TypeSymlink = '2' // 符号连接,软连接 TypeChar = '3' // 字符设备节点 TypeBlock = '4' // 块设备节点 TypeDir = '5' // 目录 TypeFifo = '6' // fifo node TypeCont = '7' // 保留项 TypeXHeader = 'x' // 可扩展头部 TypeXGlobalHeader = 'g' // 全局扩展头 Typ...阅读全文

博文 2015-11-10 11:00:02 chenbaoke

视频会议 openmeeting2

openmeeting 视频会议,仿QQ群视频,实现多人视频,多人语音,文字聊天,表情,共享PPT功能,自由发言,主持人控制发言,按F2发言三种语音模式 ,客户端使用vs2010+qt4.85开发,服务器使用php+go语言,数据库采用mysql 演示系统所有密码都是123456,演示用户 8001~8010 客户端下载地址: http://pan.baidu.com/s/1gdCikSV 服务器下载地址: http://pan.baidu.com/s/1bnAo2zP ,安装包压缩文件内有安装说明书 ![image](http://www.onlycoder.net/Uploads/Editor/2015-03-28/5516bf81db6e8.png...阅读全文

开源项目 2016-09-07 16:06:57 网友

Centos7 安装Go环境

下载最新版的SDK压缩包,传送门:https://golang.org/dl/ 点击下载Linux版本 使用WinScp软件将安装包上传到/opt/目录下,使用解压命令解压刚上传的压缩文件到/usr/loacl/下:tar -zxvf go1.13.7.linux-amd64.tar.gz -C /usr/local/,解压完之后进去该目录即可看到一个目录:go。 指定Go项目的存放路径,在/usr/loacl/下,键入命令:mkdir gocode即可。 配置环境变量。修改配置文件,键入命令:vim /etc/profile,在正常模式下,键入大写字母G,立刻返回到文件尾,键入小写i进入编辑模式,在末尾追加如下代码: export GOROOT=/usr/local/go export G...阅读全文

博文 2020-02-05 19:32:42 immersive_world

JAVA与GO语言实现的RSA加密算法的互通

之前写过C#与JAVA语言RSA算法的互通程序,后来又找了找JAVA与GO语言互通的RSA算法,发现没有现成的,经过探索后,成功实现了两者的互通,现在分享如下: 注意:1 .两者的公钥和私钥是不能混用的,即JAVA的公私钥是不能直接用于GO的,反过来也不行。 2.下面的JAVA源码的解密思想是: (1)将java产生的公钥pubKey_from_java复制给Go (2)Go利用java的公钥加密一段信息,data,err=RsaEncrypt(" hello ",pubKey_from_java) (3)java利用自己的私钥privKey_from_java解密这段信息data,已验证通过。 3. Go源码解密的思想与上述同理,不再赘述。直接上源代码。 JAVA实现RSA的源码如下: p...阅读全文

博文 2016-03-08 14:00:01 igoqhb

linux环境下golang安装第三方库的时候出错的决办法

1.错误描述 使用如下方式安装beego的时候出错 go get github.com/astaxie/beego 错误信息: go install unicode/utf8: open /opt/go/pkg/linux_amd64/unicode/utf8.a: permission denied go install unicode: open /opt/go/pkg/linux_amd64/unicode.a: permission denied go install math: open /opt/go/pkg/linux_amd64/math.a: permission denied go install sort: open /opt/go/pkg/linux_amd64/so...阅读全文

博文 2015-05-01 17:00:00 mybc724

Go语言 Go加密之DES

接着RSA加密解密,我们继续来看看DES的加密解密 一、DES简介 DES(Data Encryption Standard)是对称加密算法,也就是加密和解密用相同的密钥。其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。DES 的常见变体是三重 DES,使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES。 DES加密,涉及到加密模式...阅读全文

博文 2015-06-17 23:01:48 abv123456789

关于google app engine的安装使用

关于google app engine的安装使用 我下载了google app engine的zip压缩包,解压到c盘根目录,将“c:\go_appengine”添加到path里面,使用命令时出现问题。 1、在cmd命令行窗口可以使用goapp命令,但在gitbash下显示sh.exe:goapp:command not find。这是什么原因,到底要将哪个路径写进path里面。 2、我使用deploy命令上传时出现“could not find python interpreter: exec: "python": executable file not found in%PATH%”,大概意思是找不到Python编译器,这是什么原因,源文件到底放在哪个路径下面,我已经安装...阅读全文

md5与crc32性能对比

感觉MD5算法复杂度比crc32高很多,具体高多少呢?测试一下 // main.go package main import ( "crypto/md5" "fmt" "hash/crc32" ) func main() { data := []byte("test") fmt.Printf("%x", md5.Sum(data)) } func Crc32IEEE(data []byte) uint32 { return crc32.ChecksumIEEE(data) } func Md5(data []byte) [16]byte { return md5.Sum(data) } // main_test.go package main import "testing" func Be...阅读全文

博文 2017-02-09 08:09:02 李维

windows 下 LITE IDE go lang 安装配置使用

下载地址 liteide:http://sourceforge.net/projects/liteide/files windows 环境 下载下来是个压缩包,解压缩 作者:风来了.呆狐狸 配置 目录说明 E:\go E:\go\go #go.bat文件存放目录,该目录就是GO lang ZIP 压缩包解压缩后的目录,GO 环境核心目录 E:\go\GOPATH #扩展包或下载目录 E:\go\Dev #开发项目存储目录 GO 环境配置请看 http://blog.csdn.net/fenglailea/article/details/41444203 打开liteide 目录下 bin文件夹,liteide.exe 右击创建桌面快捷方式。 然后 双击 启动, 菜单栏 查看-> 管理GOPA...阅读全文

博文 2014-12-05 01:00:02 wljk506

Go与Android的CRC32/Adler32算法使用

Packet在网络传输中必须要考虑万一数据损坏的情况,CRC32与Adler32都是最常用的算法。 Go与Android都内置好了这两种算法的实现,直接使用就好。 Go的调用方式如下: // 校验算法(ADLER32/CRC32)例子 //author: Xiong Chuan Liang //date: 2015-4-12 package main import ( "fmt" "hash/adler32" "hash/crc32" ) var ADLER32 int = 0 var CRC32 int = 1 func main() { for _, v := range []string{"aaaaaaaaaa", "3333sdfsdffsdffsd", "234esrewr2343...阅读全文

博文 2015-06-18 09:09:22 xcltapestry

GO与Java的DES ECB加解密算法互换

Java默认DES算法使用DES/ECB/PKCS5Padding工作方式,在GO语言中因为ECB的脆弱性,DES的ECB模式是故意不放出来的,但实际情况中有时我们并不需要那么安全,以下代码完成与java默认DES算法的互通,为了能更好的与各种语言互通,建议在java中还是明确指明工作模式,如:DES/CBC/PKCS5Padding package main import ( "bytes" "crypto/des" "errors" "log" ) func main() { log.SetFlags(log.LstdFlags | log.Lshortfile) log.Println("程序开始....") key := []byte{0xD5, 0x92, 0x86, 0x02, ...阅读全文

博文 2015-10-28 20:00:06 scybs

中金易云:为出版社找到下一本《解忧杂货店》

摘要: 以供给侧结构性改革的角度来看,出版社即是最直接的供给侧,出版高质量、畅销度高的图书,建立出产高质量图书及图书IP的体系,即是提高供给体系质量。中金易云出版发行大数据平台正是以数字化转型为核心思路,以大数据中台与智能算法为基础的出版业供给侧结构性改革的成果。 2016年,全国出版、印刷和发行服务实现营业收入23 595.8亿元,较2015年增长9.0%,利润总额1 792.0亿元,增长7.8%,在图书出版方面,2016年,全国共出版图书50.0万种,较2015年增长5.1%,总印数90.4亿册(张),增长4.3%,定价总金额1 581.0亿元,增长7.1%。全年图书出版实现营业收入832.3亿元,增长1.2%,利润总额134.3亿元,增长7.2%。 总体来说,全国图书出版努...阅读全文

Golang算法

面试题03. 数组中重复的数字 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入:[2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 限制: 2 <= n <= 10000...阅读全文

博文 2020-05-06 11:32:59 DoneIsBetter