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

go语言文件汇总

归并排序及go语言实现 堆排序算法及go语言实现 Go语言基础学习(一)变量 【Leetcode】:Counting Bits问题 in Go语言 基于go语言的心跳响应 【Leetcode】:Single Number III问题 in Go语言 Go语言学习一 :基础语句 关于Go语言,自己定义结构体标签的一个妙用. Go语言内存模型 Go语言内存模型 目录: 名词定义 背景介绍 Happens Before 同步方法 Uber是如何基于Go语言构建高QPS服务的? 基于GO语言最简单的HTTP服务器 Go语言分析 go语言注释 go语言赋值 go语言学习---错误 go语言学习记录7 Go语言使用Beego的ORM插入Mysql后,时区不一致的解决方案 改变未来IT世界的十种编程语言:...阅读全文

博文 2016-04-19 21:00:02 watsondai1234

视频笔记:Go 密码学应用 - George Tankersley

视频信息 Don’t write your own crypto 经常听到这样的建议 TLS GPG 这个 Talk 不讲 TLS 和 GPG 在 Go 的 crypto 包里的算法可不都是好的算法 加密 哈希散列 Hash 密码 签名 视频信息 #Go for Crypto Developersby George Tankersleyat GopherCon 2016 https://www.youtube.com/watch?v=2r_KMzXB74w 幻灯地址:https://speakerdeck.com/gtank/crypto-for-go-developers代码:https://github.com/gtank/cryptopasta Don’t write your own...阅读全文

博文 2017-10-05 06:43:47 大桥下的蜗牛

阿里云倾力扶持技术社区 CDN流量免费放送

摘要: 近日,阿里云CDN服务推出了“站长扶持活动”,为了感谢站长们对阿里云长期以来的支持,将免费流量送给大家。 本次活动主要针对中小站长的需求,旨在帮助中小站长实现站点加速效果,提升用户浏览体验。比如大部分站点面临的由于图片、文件较多带来的访问缓慢,或者因为跨运营商、跨地域带来的区域性无法访问等状况,都可以通过接入CDN来得到解决。 近日,阿里云CDN服务推出了“站长扶持活动”,为了感谢站长们对阿里云长期以来的支持,将免费流量送给大家。 image 本次活动主要针对中小站长的需求,旨在帮助中小站长实现站点加速效果,提升用户浏览体验。比如大部分站点面临的由于图片、文件较多带来的访问缓慢,或者因为跨运营商、跨地域带来的区域性无法访问等状况,都可以通过接入CDN来得到解决。另外...阅读全文

年薪30-100W急聘“GO语言工程师、区块链开发工程师、区块链架构师、区域链首席技术官”

有兴趣的技术大牛,可以加本人微信:13826118650,此岗位均属紧急职位,只要您有实力,薪资一定能超过您的期望值。欢迎随时来聊。 工作地点:广州琶州(办公环境优美、交通便利)、中午午餐 区块链平台架构师 岗位职能: 1.负责对区块链产品解决方案架构进行设计,并参与区块链技术的前瞻性技术预研; 2.负责研究Hyperledger fabric的加密技术、共识算法和底层实现; 3.参与各个区块链开发社区并贡献源码者优先;参与公司区块链底层核心模块和架构的开发; 4.参与区块链技术在行业应用中的衔接与落地。 任职要求: 1.本科及以上学历,计算机、软件等相关专业,5年以上产品架构或研发工作经验; 2.对区块链产品有深入了解,精通至少一种Hyperledger、以太坊、比...阅读全文

linux通过VMware和主机相连连接互联网

正文 1. VM8 使用固定IP: 2.  这里使用NAT模式: **3. VM中依次:编辑——>虚拟网络编辑器,点VMnet8 把使用本 地DHCP的勾去掉,子网IP和主机VM8的IP同网段,然后点NAT设置。** 网关IP和刚才的IP也是同一个网段。 4. vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 增加这些: TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=eno16777736 UUID=0...阅读全文

博文 2019-10-20 12:02:45 小碗汤

Go 语言学习笔记 -第1章 go概述

Go 语言学习笔记 -第1章 @(Golang) [toc] 学习方向 1、区块链研发 2、Go服务端 数据处理、处理大并发/游戏软件 3、Go分布式/云计算 应用领域 1、区块链应用 区块链技术,简称BT (Blockchain Technology)是一种互联网数据库技术,其特点是去中心化、公开透明、让每个人均可以参与数据库记录 2、后端服务器应用 美团后台流量支持程序:支撑主站后台流量(排序、推荐、搜索等),提供负载均衡、Cache、容错、按条件分流、统计运行指标(QPS、Latency)等 网游:游戏服务器(通讯、逻辑、数据存储) 3、云计算、云服务后台应用 盛大云CDN(内容分发网站):应用范围:CDN的调度系统、分发系统、监控系统、短域名服务、CDN内部开放平台、运营报表系统等其...阅读全文

博文 2020-01-08 19:32:41 Mark110

golang中crypto/rc4包

rc4包实现了RC4加密算法,参见Bruce Schneier's Applied Cryptography。 type KeySizeError int func (KeySizeError) Error() string type Cipher struct{...} func NewCipher(key []byte) (*Cipher, error) NewCipher创建并返回一个新的Cipher。参数key时RC4密钥,至少1字节,最多256字节。 func (c *Cipher) Reset() Reset方法会清空密钥数据,以便将其数据从程序内存中清除(以免被破解) func (c *Cipher) XORKeyStream(dst, src []byte) XORKeySt...阅读全文

利用golang优雅的实现单实例

平时编写代码过程中,经常会遇到对于全局角度只需运行一次的代码,比如全局初始化操作,设计模式中的单例模式。针对单例模式,java中又出现了饿汉模式、懒汉模式,再配合synchronized同步关键字来实现。其目的无非就是将对象只初始化一次,而且最好保证在用到的时候再进行初始化,以避免初始化太早浪费资源,或者两次初始化破坏单例模式的实例唯一性。 Go语言的sync包中提供了一个Once类型来保证全局的唯一性操作,其通过Do(f func())方法来实现,即使** f** 函数发生变化,其也不会被执行,下面我们来看一个小例子: package main import ( "fmt" "sync" "time" ) var once sync.Once func main() { //once循环调...阅读全文

博文 2019-10-18 01:32:50 aside section ._1OhGeD

利用procedure批量插入数据

正文   要求在页面查询到5000条数据,为了方便插入,准备用shell脚本写curl命令调用自己写的代码接口,但是速度慢,而且写的时候遇到点儿小问题,故用sql语句写了这个功能  由于operationlog表中的ts字段为13位的时间戳,所以采用了截取的方式。 DROP TABLE IF EXISTS `operationlog`; CREATE TABLE `operationlog` ( `sn` int(11) NOT NULL AUTO_INCREMENT, `opl` varchar(8) NOT NULL, `src` varchar(32) NOT NULL, `pid` varchar(32) DEFAULT NULL, `ts` varchar(13) NOT NULL...阅读全文

博文 2019-10-16 11:02:44 小碗汤

yum源配置

在配置yum前首先得说说rpm,在redhat和centos linux系统上,rpm作为软件包管理工具,可以方便的安装、查询、卸载软件包。常见命令如下: #安装: rpm -ivh jdk-7u25-linux-x64.rpm #卸载: rpm -e jdk-7u25-linux-x64.rpm #升级: rpm -Uvh jdk-7u25-linux-x64.rpm #查询软件的安装路径: rpm -ql yum-3.4.3-118.el7.noarch #查询所有安装的包: rpm -qa #查询某个文件是哪个rpm包产生: rpm -qf /var/lib/yum/yumdb 但是在多个包组成的rpm包用rpm命令安装时,其依赖包问题是超级繁琐的。 yum是redhat和centos...阅读全文

博文 2019-10-20 12:02:44 小碗汤

兄弟连区块链技术培训分享Go语言之defer的执行

互联网二十多年,已到十字路口。区块链出现前的互联网被称为古典互联网,而应用区块链技术的互联网才进入了后互联网时代。作为一项新兴的技术,区块链无疑正处于风口浪尖之上,其发展前景于普通大众而言也终将是利好。但目前由于区块链技术处于发展早期阶段,存在技术成熟度、落地应用场景有限等问题,兄弟连教育建议用户在选择专业Go语言+区块链培训机构前应进行仔细考量与辨别。golang中defer的执行大家都知道golang的defer关键字,它可以在函数返回前执行一些操作,最常用的就是打开一个资源(例如一个文件、数据库连接等)时就用defer延迟关闭改资源,以免引起内存泄漏。例如:func do() (ok bool) { file,_ := os.Open("c:\a.txt") defer file.Cl...阅读全文

博文 2018-08-27 15:35:22 兄弟连区块链培训

shell脚本批量调用接口

正文   要求在页面查询到5000条数据,为了方便插入,用shell脚本写curl命令调用自己写的代码接口; 脚本如下: #!/bin/bash a=0 while [ $a -le 10 ]; do # length of ts is 13 required,Through the following way like this ts=`date +%s%N` ts=${ts:0:13} json='{"name" : "'$1$a'", "age" : '$2', "ts" : '$ts'}' a=$((a+1)) curl -k -H 'Content-Type:application/json;charset=utf-8' http://192.168.2.5:8080 -X POS...阅读全文

博文 2019-10-20 12:32:48 小碗汤

FreeWheel 寻大数据小伙伴

基础架构部-平台研发组Lead Software Engineer职责描述:1. 公司级大数据平台的架构规划与设计,以提升平台的存储与计算能力,带领团队完成技术解决方案;2. 大数据基础组件Kafka/HBase/YARN/Spark的二次开发与性能优化;3. 为业务部门提供大数据平台的技术架构支持,解决其技术难题与性能瓶颈;4. 调研大数据行业前沿技术方向并运用到实际生产系统;5. 建立高效的研发流程与规范,持续提升平台的研发效率与质量。任职要求:1. 五年以上Hadoop及大数据生态圈产品实践经验,如Kafka/HBase/Presto/YARN/Spark等;2. 深入了解分布式系统、大数据平台、消息队列等高可用高弹性架构;3. 有志于建立大规模低延时数据处理系统,用于解决实际业务问题...阅读全文

golang JWT 包生成 Token, 验证 Token

简介 json web token 简称 jwt 是一种轻量级的规范 常用与用户认证 大致由 3 部分构成: Header (头部) Payload (载荷) Signature (签名) 用.拼接 Token = Header + '.' + Payload + '.' + Signature Header 用来表明签名的加密算法 token 类型等. { "typ": "JWT", "alg": "HS256"lag } 以上 json 转为 base64 生成 header Payload Payload 记录你需要的信息. 其中应该包含 Claims Claims Audience string json:"aud,omitempty" ExpiresAt int64 json:"e...阅读全文

博文 2019-01-29 08:34:40 w85278161

[golang] Blowfish算法的go实现

最近由于工作的需要,需要的实现一个go的Blowfish算法。其实go本身有一个加密算法库crypto,其中有Blowfish。但是该算法在很多细节上跟我的需求不同,导致最终加密结果千差万别。 Blowfish算法 BlowFish是对称加密算法的其中一种。在很多场景下,作为DES的替代出现。BlowFish并不是直接用我们指定的密钥对数据加密,而是先对密钥进行预处理,然后用处理的结果再对数据加密。解密过程同理。 BlowFish算法内置两个源密钥:pbox和sbox,pbox18位数组,sbox4个256位数组组成。算法在加密解密时,根据两个盒子大量使用位移运算和逻辑位运算。具体的算法细节自行百度/谷歌,本文就不详述了。 GO实现 1. 生成pbox和sbox 几个重要的变量声明 var ...阅读全文

博文 2017-09-24 15:04:55 king_wang

Angular 2

一年前写的文字,当时还在 偶数科技实习。记录了技术栈和学习过程。 由于我司老板钦定了前端使用Bootstrap、Angular,后端使用GoLang。我们也只好硬着头皮上。GoLang半个月前刚了解大概,就直接上马写了Monitor process和RESTful service。前几天jQuery和Bootstrap也才大概了解。就剩下Angular这个框架让人很疑惑。最开始我是跟着官网的教程一步一步来的,大概只跟了一个section就放弃了。代码编译错误不知道怎么解决,quickstart一点也不for beginner。后来Eason又找了一些AngularJS和Angular的教程,Angular JS由于是快要淘汰的产品,我就没有看,那个Angular的教程又太老了,与现在的技术落...阅读全文

博文 2018-12-25 21:34:42 SaltSoup

《Java异步编程实战》隆重上市!!!

0.1为何写作本书 异步编程是可以让程序并行运行的一种手段,其可以让程序中的一个工作单元与主应用程序线程分开独立运行,使用它有许多好处,例如可以提高应用程序的性能和响应能力。 虽然Java中不同技术域提供了相应的异步编程技术,但是对异步编程技术的描述散落到了不同技术域的技术文档中,并没有一个统一的地方对这些技术进行梳理归纳。另外这些技术之间是什么关系,各自的出现都是为了解决什么问题,我们也很难找到资料来解释。 本书的出现则是为了打破这种局面,本书旨在把Java中相关的异步编程技术进行归纳分类总结,然后呈现给大家,让大家可以有一个统一的地方来查看与探究。 0.2本书特色 本书涵盖了Java中常见的异步编程场景,这包含单JVM内的异步编程、以及跨主机通过网络通讯的远程过程调用的异步调用与异步处理...阅读全文

博文 2019-12-23 01:32:55 阿里加多

Ethereum学习笔记3--以太坊用到的加密技术

一 加密技术总结 "crypto/ecdsa":用与数字签名 "golang.org/x/crypto/sha3" "crypto/rand" "github.com/ethereum/go-ethereum/crypto/bn256/google" "github.com/ethereum/go-ethereum/crypto/bn256/cloudflare" "crypto/elliptic" "github.com/ethereum/go-ethereum/crypto/secp256k1" "crypto/pbkdf2" "crypto/aes" "crypto/cipher" "crypto/hmac "crypto/subtle" "crypto/cipher" "crypto...阅读全文

博文 2019-08-02 21:32:38 陈兴强

golang 类型本质

在声明一个新类型之后,声明一个该类型的方法之前需要先回答一个问题:这个类型的本质是什么。如果这个类型增加或者删除某个值,是要创建新值还是要更改当前的值?如果是要创建一个新值,该类型的方法就是使用值传递者。如果是修改当前的值就使用指针接受者这个答案会影响程序内部传递这个类型的值得方式:是按照值传递还是按照指针传递。保持传递的一致性很重要。这个背后的原则是,不要只关注某个地方是如何处理的这个值,而是要关注这个值得(本质是什么)?。5.3.1内置类型内置类型是由语言提供的一组类型。我们已经见过这些类型,分别是数值类型,字符串类型和布尔类型。这些类型本质上都是(原始的类型)?。因此党对这些值进行增加或者删除的时候,会创建一个新的值。基于这个结论把这些类型的值传递给方法或者函数时,应该传递一个(对应的...阅读全文

博文 2017-07-06 08:07:20 我是不是小明

golang中crypto/aes包

aes是对称加密算法,这篇博客只介绍怎么使用golang中怎么调用标准库已封装的算法实现,如果是要学习aes算法实现,移步百度 有两个操作:加密和解密 const BlockSize = 16 功能说明:AES算法块(加密数据块)的字节长度。 package main import ( "bytes" "crypto/aes" "crypto/cipher" "log" "fmt" ) // 填充数据 func padding(src []byte, blockSize int) []byte { padNum := blockSize - len(src) % blockSize pad := bytes.Repeat([]byte{byte(padNum)}, padNum) retur...阅读全文

常见加密算法入门

参考 https://www.jianshu.com/p/ce3893a7be09 比特币的加密算法 https://www.jianshu.com/p/57fc42456ab4 分类和简述 常见的密钥加密算法类型大体可以分为三类:对称加密(单秘钥加密)、非对称加密、单向加密(结果唯一且计算过程可重复但是计算不可逆) 对称加密算法 对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方;接收方收到加密后的报文后,结合密钥和解密算法解密组合后得出原始数据。由于加解密算法是公开的,因此在这过程中,密钥的安全传递就成为了至关重要的事了。而密钥通常来说是通过双方协商,以物理的方式传递给对方,或者利用第三方平台传递给对方,一旦这过程...阅读全文

博文 2018-12-04 11:34:46 黄靠谱

golang里面和证书相关的几个概念和函数

golang里面和证书相关的几个概念和函数API 什么是PEM, DER 证书是一个结构化的数据结构 结构化的数据结构可以按照ans.1的格式定义成字节流的方式。 把上述字节流使用DER进行编码,就得到证书的DER 把DER进行based64编码,就得到PEM 所以什么是PEM:it's just a base64 encoding of a DER-encoded stream 看一个例子: $ cat cert.pem -----BEGIN CERTIFICATE----- MIICFjCCAbygAwIBAgIUWkRgCi9aADdyFNEjM339ZmwEzdYwCgYIKoZIzj0EAwIw LDEUMBIGA1UEChMLb2JwaW5zdGFuY2UxFDASBgNVBAM...阅读全文

博文 2020-03-05 21:33:06 CodingCode

golang|python简单与运算实现的对称加密算法

package main import ( "fmt" "strconv" "strings" ) func encryptData(code_data string, callback_key string) string { dataArr := []rune(code_data) keyArr := []byte(callback_key) keyLen := len(keyArr) var tmpList []int for index, value := range dataArr { base := int(value) dataString := base + int(0xFF&keyArr[index%keyLen]) tmpList = append(tmpList, da...阅读全文

博文 2018-04-20 16:33:06 AndyHua仔仔

Golang 1.14 发布 | 云原生生态周报 Vol. 39

作者 | 陈俊、何淋波、李鹏、宋净超 业界要闻 Golang 1.14 发布 Golang Release 了 1.14 版本。该版本包含生产级别 go module,改进 defer 性能,以及 Goroutine 抢占等功能。 Cilium 1.7 版本发布 Cilium 是一款开源软件,负责以透明方式提供并保护由 Linux 容器管理平台(例如 Kubernetes)部署完成的各应用程序服务间的网络与 API 连接。 Contributor Summit Amsterdam Schedule Announced 去阿姆斯特丹 KubeCon 的同学,不要忘记注册这个难得的开发者聚会。 KubeCon + CloudNativeCon China 2020 议题提交即将结束 将于中国时间...阅读全文

博文 2020-02-28 18:32:42 阿里巴巴云原生

k8s使用Job执行任务失败了怎么办

Kubernetes 中使用 Job 和 CronJob 两个资源分别提供了一次性任务和定时任务的特性,这两种对象也使用控制器模型来实现资源的管理,我们在这篇文章来介绍Job执行如果失败了会怎么样呢? 修改job-fail.yaml,故意引入一个错误: Never 如果将 restartPolicy 设置为 Never 会怎么样?下面我们实践一下,修改job-fail.yaml后重新启动。 运行 Job 并查看状态,可以看到Never策略的job,pod失败后,重新创建: 直到重新创建7个(spec.backoffLimit默认为6,即重试6次,共7个pod)pod都失败后,认为失败,job的status里会更新为Failed 当前 Completion 的数量为 0 查看 Pod 的状态:...阅读全文

博文 2019-10-16 10:33:20 小碗汤

软件技术-零基础Golang编写文件服务器

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】 当用户请求一个网页的时候,如何让服务器把网页文件发送给用户? 文件服务器 首先我们要知道,用户在浏览器中看到的页面其实就是一个.html文件,就是我们上一篇文章时候撰写的...代码。 但我们最初用Golang写的服务器只是简单返回Hello world!字符串,而不是文件。所以,正确的做法是: 让Golang读取硬盘上的文件内容,然后发送给用户。 这就是文件服务器要干的事情,你要login.html页面,我就给你login.html文件。 在Golang里面,已经提供了快速建立文件服务的功能,就是http.FileServer方法,但是首先要知道我们的web文件夹放在哪里。 获取当前文件路径 在Gola...阅读全文

博文 2019-03-27 02:34:38 zhyuzh3d

BDEX知识科普之跨链的本质

本文引自《VNTChain研究院》 跨链的本质是什么? 跨链的实现是一个较为复杂的过程,目前主流的跨链技术包括:公证人模式(主要包括中心化公证人机制和多重签名公证人机制)、侧链(Sidechains)/中继(Relays)模式、哈希锁定模式,对此已有许多文章及报告进行了详细讲解,就不再和大家赘述。接下来我想着重与大家探讨跨链的本质。 1.跨链类型 从跨越的区域范围,可以分为链内跨链与链外跨链。链内跨链,即指同一区块链底层基础平台,通过跨链技术实现平台内的联盟链与联盟链、公有链与联盟链的优势融合,从而实现价值流转与信息交互,满足商业场景需求。链外跨链则是基于不同区块链底层基础平台进行跨链交互。从跨越的区块链底层基础平台类型,可以分为同构链跨链与异构链跨链。同构链通指采用同一底层协议(包括安全机...阅读全文

博文 2019-09-05 15:32:58 逗币狗

加密与解密系列 - 对称加密

文地址 tpkeep.com 本文讨论的对称加密算法主要包括 DES、3DES、AES DES 明文:64 bit 密文:64 bit 密钥:56/64 bit(每 7 位插入一个校验位的时候为 64 bit) 其设计思想充分体现了香农提出的混淆和扩散原则 image.png DES 使用的是 Feistel 结构来加密的,一共需要 16 轮,加密过程如下: 将明文进行初始置换(通过置换表) 将置换后的数据分为左右 L1 R1 各 32 bit 将 48 bit 的子密钥与 R1 作为轮函数F的输入 将 L1 与轮函数的输出异或运算,得到 L1密文 将 L1 密文与 R1 交换位置,分别作为下一轮的 R2,L2 将 2-5 再重复 15 次 将 L17 R17 交换位置,并拼接为 64bit...阅读全文

博文 2019-10-13 20:32:44 aside section ._1OhGeD

三方对接心路历程

从业这几年,因业务的需要,对接过不少三方,有大公司也有小公司,其中感受颇多,这里回顾以及总结一下。 初入职场即与某大型X公司进行业务对接,其实很简单,我只需将公司内部数据提供一个接口给对方调用即可,然而没想到跟我对接的人疑似为对方公司的运营类人员,我按照对方要求完成接口开发,并顺利提供给对方使用,后来对方找到我们说是还需要接口提供其它字段云云,后因公司之间的一些博弈不了了之了,这件事给我的印象是: 对接首先要保证按需要完成,但如果能站在对方角度,提前发现,对接一些问题,想必也会减少不少麻烦。 后与大型跨国S公司进行业务对接,真颠覆了我对大公司的想象:文档给的是有,但是服务器接口不通,接口定义不完整,看起来像是基于某某语言的接口定义,微信、电话、邮件沟通,真是巨慢,骨子里透露着大公司的傲慢,我...阅读全文

博文 2018-11-24 19:34:41 wu_sphinx

加解密学习笔记

加密技术包括两个元素:算法和密钥。 算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤。 密钥是用来对数据进行编码和解密的一种算法。 在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。 大纲介绍 常用的加密解密方法主要有以下加大类: 基本加密方法 对称加密方法 非对称加密方法 下面我们简单介绍一下这几种加密码方法 加密解密技术 我们先来了解一下加密解密的技术。 数据加密和数据解密是一对逆过程。 先来看加密解密的公式: 加密: img 数据加密是用加密算法E和加密密钥K1将明文P转换成密文C 用上面公式表示。 解密: img 数据解密是数据加密的逆过程, 解密算法D和解密密钥K2奖密文C转换成明文P。 通过下图我们可以清晰的看到,数据加密...阅读全文

博文 2019-03-05 18:34:40 赵客缦胡缨v吴钩霜雪明

G8.3 实现不可逆加密 - 用Go语言 Golang实现

前两节介绍的加密方法都属于“可逆”的加密算法,因为加密后的密文经过解密的过程就可以还原出原文。还有一类加密算法属于“不可逆”的加密算法,是指一般无法进行正常解密还原出原文的加密算法。 不可逆加密算法的应用场景也有很多,最典型的是服务端保存用户登录密码的方式。从保护用户隐私角度考虑,服务器端不应该存储用户的登录密码原文,也不应该保存可逆加密后的密文(因为也可以被解密还原),这时候实践中常用的方法是在服务器保存密码时将其用不可逆的算法转换成密文存储,下次用户登录时服务器将发来的用户密码以同样的不可逆算法加密后再与保存的密码密文做比对来判断是否相同。从这个例子也可以看出,不可逆加密算法一般要满足这个要求:同样的明文用同样的方式加密后,得到的密文必须是一样,否则就无法用于比对了。最简单的不可逆加密算...阅读全文

博文 2020-02-27 12:32:44 陆满庭

Golang不到100行实现一套灵活的JWT库

JWT 全 chen JSON Web Tokens 现在被广泛的应用于各种前后端分离的场景,他比传统的 Token Session 方式,更具灵活性。 当然网上也有很多开源的 JWT 库,非常之多,开源组织也提供了官方的库。 可以访问这网址去下载: https://jwt.io 复制代码但是如果我们知其然而不知其所以然的使用,难免会有很多问题。 所以这次分享下,我最近自己写的一个 JWT 库,代码已经上传到 github 上了,地址如下: https://github.com/liu578101804/go-tool/tree/master/jwt 复制代码相比出名的 JWT 库来说,我没有任何优势,只是作为学习使用,欢迎大家指正其中的不足。 下面就给大家说下我的实现思路吧。 JWT 的原...阅读全文

博文 2019-10-17 15:04:26 Golang全栈

ElasticSearch5.x 删除数据

以下测试在elasticsearch5.6.10版本。 首先要说明的是ElasticSearch从2.x开始就已经不支持删除一个type了,所以使用delete命令想要尝试删除一个type的时候会出现如下错误: No handler found for uri [/dating_profile/zhenai/] and method [DELETE] 测试 假如存在一个名为dating_profile的index和zhenai的type: curl -XDELETE http://192.168.1.102:9200/dating_profile/zhenai 执行后报错如下: 所以现在如果想要删除type有两种选择: 1、重新设置index。 2、删除type下的所有数据。 如果重新设置i...阅读全文

博文 2019-10-18 10:02:52 小碗汤

用Go构建区块链——1.基本原型

本篇开始进入"用Go构建区块链"系列,主要对原文进行翻译。本篇对应原文如下: Building Blockchain in Go. Part 1: Basic Prototype 话不多说,开始进入正文。 1、介绍 区块链是21世纪最具革命性的技术之一,它仍在逐步发展中,并且其潜力还未被充分认识。本质上,区块链只是一个分布式数据库而已。但是,它的独特之处在于它不是一个私有的数据库,而是一个公共的,即每个使用它的人都拥有它的全部或部分副本。只有得到其他数据库管理员的同意,新的记录才能被加入。正因为由此区块链,才使得加密货币和智能合约成为可能。 在本系列文章中,我们将构建一个基于简单区块链实现的简单加密货币。 2、区块 我们从"区块链"的"区块"部分开始。在区块链中,它存储有价值的信息。例如,比...阅读全文

博文 2019-03-01 14:34:45 我是李小胖

如何批量删除k8s资源对象

本文首发于公众号【我的小碗汤】扫描文末二维码关注,一起交流学习 在云平台开发、中间件容器化时,经常会遇到批量删除k8s资源对象的需求,下面记录一下kubectl和golang发送删除pvc、pv、pod请求的例子,便于后续学习查阅 kubectl发送删除请求 根据label批量删除pod: kubectl delete pod -n kube-system -l "harmonycloud.cn/statefulset=redis-ll-1010-a" (/img/2019-10-10-batch-delet-k8s-resources/batch-delete-pods.png)] 根据label批量删除pvc: kubectl delete pvc -n kube-system -l "...阅读全文

博文 2019-10-16 10:33:27 aside section ._1OhGeD

云服务器使用docker搭建服务

前提:亚马逊云已经配置好启动。 安全组入站策略如下: 出站策略如下: 登陆EC2后,默认只能用ec2-user用户登陆,然后切换到root: sudo su 用yum执行安装docker提示No package docker avaible yum install docker -y 解决方法:在/etc/yum.repos.d/下加CentOS7-Base-163.repo文件: vi CentOS7-Base-163.repo # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick...阅读全文

高级 PHP、Swoole、Go 开发者的聚集地,期待你的加入

##### 为什么要创建这个群? * 有众多的PHP开发人员在同时学习Swoole和Go,但目前没有一个综合的群出现 * 很多Swoole的群对PHP开发人员不是很友好,都在推广自己的开源产品,很少解答新手的问题 * 在这个开发技术日新月异的时代,只有向优秀人学习和交流,才能真正理解一些前沿的技术 * 群内有资深并且热情的golang大佬,第一时间解答疑问,解答但不限于操作系统,网络协议,服务架构方面的问题。 * 群内有资深并且热情的Swoole大佬,第一时间解答疑问,解答但不限于swoole方面的问题。 * 定位于高级PHP和希望通过学习swoole和golang来提升自己的初中级PHP,摆脱低级curd。 ##### 热情邀请你的加入 ![高级 PHP、Swoole、Go 开发者的聚集地...阅读全文

博文 2019-04-12 15:49:11 kxg3030

FreeWheel招Lead/Senior大数据开发与分析工程师

Lead/Senior Software Engineer【职责描述】-面向客户的数据产品开发,测试,部署、监控,涵盖实时报表和离线报表等不同类型的数据产品;-紧密配合产品经理,理解业务需求,梳理业务流程,针对不同业务需要和应用场景,制定合理的系统架构以及实现方式,可以独立完成技术解决方案;-周期性产品迭代,持续改进现有产品,包括业务流程和系统架构,与基础架构部门配合,解决技术难题与性能瓶颈。【任职要求】-本科及其以上学历,三年以上大数据生态圈工作经验,二年以上数据产品实践经验;熟练掌握数据产品相关设计原理,对数据产品设计、交互、系统架构有深入的见解;-熟悉Spark/MapReduce/HBase/Presto等开源大数据技术,有多种业务场景下的实践经验;-有数据仓库建模、数据平台搭建、E...阅读全文

博文 2019-10-29 18:32:48 aside section._1OhGeD

高级 PHP、Swoole、Go 开发者的聚集地,期待你的加入

##### 为什么要创建这个群? * 有众多的PHP开发人员在同时学习Swoole和Go,但目前没有一个综合的群出现 * 很多Swoole的群对PHP开发人员不是很友好,都在推广自己的开源产品,很少解答新手的问题 * 在这个开发技术日新月异的时代,只有向优秀人学习和交流,才能真正理解一些前沿的技术 * 群内有资深并且热情的golang大佬,第一时间解答疑问,解答但不限于操作系统,网络协议,服务架构方面的问题。 * 群内有资深并且热情的Swoole大佬,第一时间解答疑问,解答但不限于swoole方面的问题。 * 定位于高级PHP和希望通过学习swoole和golang来提升自己的初中级PHP,摆脱低级curd。 ##### 热情邀请你的加入 ![高级 PHP、Swoole、Go 开发者的聚集地...阅读全文

博文 2019-04-09 12:09:07 kxg3030

Go语言可能会遇到的坑

最近在用go开发项目的过程中突然发现一个坑,尤其是对于其它传统语言转来的人来说一不注意就掉坑里了,话不多说,咱看代码: //writeToCSV func writeESDateToCSV(totalValues chan []string) { f, err := os.Create("t_data_from_es.csv") defer f.Close() if err != nil { panic(err) } w := csv.NewWriter(f) w.Write(columns) for { select { case row := <- totalValues: //fmt.Printf("Write Count:%d log:%s\n",i, row) w.Write(ro...阅读全文

博文 2019-10-18 01:32:49 aside section ._1OhGeD

FreeWheel招Lead/Senior大数据开发与分析工程师

Lead/Senior Software Engineer【职责描述】-面向客户的数据产品开发,测试,部署、监控,涵盖实时报表和离线报表等不同类型的数据产品;-紧密配合产品经理,理解业务需求,梳理业务流程,针对不同业务需要和应用场景,制定合理的系统架构以及实现方式,可以独立完成技术解决方案;-周期性产品迭代,持续改进现有产品,包括业务流程和系统架构,与基础架构部门配合,解决技术难题与性能瓶颈。【任职要求】-本科及其以上学历,三年以上大数据生态圈工作经验,二年以上数据产品实践经验;-熟练掌握数据产品相关设计原理,对数据产品设计、交互、系统架构有深入的见解;-熟悉Spark/MapReduce/HBase/Presto等开源大数据技术,有多种业务场景下的实践经验;-有数据仓库建模、数据平台搭建、...阅读全文

博文 2019-10-29 21:33:01 aside section._1OhGeD

Gitee + 区块链:基于 IPFS 的去中心化代码托管环境探索

Gitee 团队一直在探索去中心化的存储技术,甚至是建立于区块链上的完全去中心化的存储,以为开发者提供更安全、稳定的代码托管环境,为此我们一直在跟踪和研究两大核心技术问题,一是去中心化的底层存储技术,二是适用的高效共识算法。一、去中心化的底层存储协议在底层存储协议方面, Gitee 团队深入研究了 IPFS 协议,同时在探索 IPFS 协议作为底层存储技术在实现去中心化代码托管的落地可行性和优缺点。IPFS(InterPlanetary File System – 星际文件系统)是一个基于内容哈希寻址的点对点的超媒体分发协议,2014 年开始由 Protocol labs在开源社区下推动发展,目前已经提供了基于 Golang 的开源实现(详情请访问:https://github.com/ip...阅读全文

博文 2019-10-31 17:32:53 aside section._1OhGeD

兄弟连区块链教程区块链背后的信息安全2DES、3DES加密算法原理二

## Feistel轮函数 每次Feistel轮函数内部,均经过4种运算,即: * 1、扩展置换:右侧32位做扩展置换,扩展置换将32位输入扩展成为48位输出,使得扩展后输出数据长度与48位子密钥等长。 * 2、异或运算:右侧32位扩展置换为48位后,与48位子密钥做异或运算。 * 3、S盒置换:将异或运算后的48位结果,分成8个6位的块,每块通过S盒置换产生4位的输出,8个块S盒置换后组成32位的输出。 S盒置换的过程为:6位中取第1位和第6位组成行号,剩余第2、3、4、5位组成列号,从S盒置换表中取出相应行、列的十进制数,并转化为4位二进制数,即为S盒输出。 * 4、P盒置换:S盒置换后的32位输出数据,进行P盒置换,仍然输出为32位数据。 go标准库中DES Feistel轮函数代码如...阅读全文

博文 2018-11-09 14:46:20 ITXDL

软件技术-零基础编写响应式登录页面

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】 让网页自动适应电脑、手机等不同屏幕宽度,一套代码多重效果。 上一篇文章:软件技术-零基础Golang编写文件服务器 页面基础 我们改进login.html文件,使用Go Live按钮启动实时预览。 可能需要从Preference-Settings修改"liveServer.settings.root":"/web/",使适合你的$GOPATH下的web文件夹路径。 修改代码为: 阅读全文

高级 PHP、Swoole、Go 开发者的聚集地,期待你的加入!

##### 为什么要创建这个群? * 有众多的PHP开发人员在同时学习Swoole和Go,但目前没有一个综合的群出现 * 很多Swoole的群对PHP开发人员不是很友好,都在推广自己的开源产品,很少解答新手的问题 * 在这个开发技术日新月异的时代,只有向优秀人学习和交流,才能真正理解一些前沿的技术 * 群内有资深并且热情的golang大佬,第一时间解答疑问,解答但不限于操作系统,网络协议,服务架构方面的问题。 * 群内有资深并且热情的Swoole大佬,第一时间解答疑问,解答但不限于swoole方面的问题。 * 定位于高级PHP和希望通过学习swoole和golang来提升自己的初中级PHP,摆脱低级curd。 ##### 热情邀请你的加入 ![高级 PHP、Swoole、Go 开发者的聚集地...阅读全文

博文 2019-04-04 14:44:01 kxg3030

用go语言爬取珍爱网 | 第一回

image 我们来用go语言爬取“珍爱网”用户信息。 首先分析到请求url为: http://www.zhenai.com/zhenghun image 接下来用go请求该url,代码如下: package main import ( "fmt" "io/ioutil" "net/http" ) func main() { //返送请求获取返回结果 resp, err := http.Get("http://www.zhenai.com/zhenghun") if err != nil { panic(fmt.Errorf("Error: http Get, err is %v\n", err)) } //关闭response body defer resp.Body.Close() if ...阅读全文

博文 2019-10-18 01:32:52 aside section ._1OhGeD