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

Go和HTTPS

Go和HTTPS 四 30 bigwhite技术志 CA, CNNIC, Go, Golang, http, https, MD5, ngrok, openssl, SHA, SHA-1, SHA256, SSL, TLS, Web, 加密, 单项散列, 密钥, 微信, 摘要, 数字证书, 私钥, 签名 1 Comment 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对...阅读全文

博文 2015-05-01 12:11:47 bigwhite

golang取两个数字之间的随机数

golang取两个数字之间的随机数 package main import ( "crypto/rand" "math/big" "fmt" ) func main(){ fmt.Println(RandInt64(100,3000)) } func RandInt64(min,max int64) int64{ maxBigInt:=big.NewInt(max) i,_:=rand.Int(rand.Reader,maxBigInt) if i.Int64()阅读全文

博文 2015-11-09 21:00:01 别人说我名字很长

golang GET 出现 x509: certificate signed by unknown authority

我们编写一个Go程序来尝试与这个HTTPS server建立连接并通信。 //gohttps/4-https/client1.gopackage main import ( "fmt" "io/ioutil" "net/http") func main() { resp, err := http.Get("https://localhost:8081") if err != nil { fmt.Println("error:", err) return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) fmt.Println(string(body))} 运行这个client,我们得到如下错误: $go run ...阅读全文

博文 2017-09-26 18:30:00 kccdzz

大型网站的HTTPS实践(一)---HTTPS协议和原理

1前言 百度已经于近日上线了全站HTTPS的安全搜索,默认会将HTTP请求跳转成HTTPS。本文重点介绍HTTPS协议,并简单介绍部署全站HTTPS的意义。 本文最早发表于百度运维部官方博客 2 HTTPS协议概述 HTTPS可以认为是HTTP + TLS。HTTP协议大家耳熟能详了,目前大部分WEB应用和网站都是使用HTTP协议传输的。 TLS是传输层加密协议,它的前身是SSL协议,最早由netscape公司于1995年发布,1999年经过IETF讨论和规范后,改名为TLS。如果没有特别说明,SSL和TLS说的都是同一个协议。 HTTP和TLS在协议层的位置以及TLS协议的组成如下图: TLS协议主要有五部分:应用数据层协议,握手协议,报警协议,加密消息确认协议,心跳协议。 TLS协议本身...阅读全文

博文 2015-05-04 11:26:58 luocn99

Go和HTTPS

自 tony bai 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对HTTPS做一些深度挖掘。主要途 径:翻阅网上资料、书籍,并利用golang编写一些实验examples。 一、HTTPS简介 日常生活中,我们上网用的最多的应用层协议就是HTTP协议了,直至目前全世界的网站中大多数依然只支持HTTP访问。 使用Go创建一个HTTP Server十分Easy,十几行代码...阅读全文

博文 2017-01-20 13:00:03 andylau00j

Go和HTTPS

自:http://tonybai.com/2015/04/30/go-and-https/ 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对HTTPS做一些深度挖掘。主要途 径:翻阅网上资料、书籍,并利用golang编写一些实验examples。 一、HTTPS简介 日常生活中,我们上网用的最多的应用层协议就是HTTP协议了,直至目前全世界的网站中大多数依然只支持HTTP...阅读全文

博文 2015-06-02 04:00:05 sevenyuan

Ubuntu 配置 Go 语言开发环境(Sublime Text 3)

Sublime Text 3安装 gosublime 下载 Sublime Text飞机票:http://www.sublimetext.com/3 安装 gosublime首先,我们需要安装 Sublime Text 的 Package Control 功能,在打开软件后,按下快捷键 Ctrl+`,(`这个符号为英文半角模式下,按下 Tab 键上方、数字键1左边的那个按键),此时会打开一个命令窗口,复制并输入以下内容,最后回车: import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_op...阅读全文

博文 2014-12-30 08:00:01 Kriry

招聘Golang开发工程师(上海)

发个招聘帖,咱公司要招聘Golang开发工程师啦,以下是职位描述。有兴趣者请投简历至eva.wang@trustasia.com. 我们期待您的加入。 公司介绍: 亚数信息科技(上海)有限公司主要从事数字证书及信息安全产品的研发与销售,并提供网络信息安全整体解决方案与专业信息安全服务。这其中包括全球可信的服务器SSL证书、软件代码签名证书、邮件安全证书、客户端证书以及各类电子文档签名证书,企业自行管理证书的PKI管理平台部署以及企业服务器安全监测服务。目前,公司的客户包括华为、三星、京东、中国银联、百度和中国移动等。 亚数信息科技(上海)有限公司以“加密无处不在,让互联网更安全可信”为使命,努力成为国内信息安全领域的创新者和技术领先者,为客户提...阅读全文

golang 椭圆曲线加密使用ecdsa

非对称加密算法有RSA、ECDSA,对极大整数做因数分解的难度决定了RSA算法的可靠性,ECDSA为椭圆曲线加密算法,是基于椭圆方程公式,所以安全性要高于RSA。 这里说下使用ecdsa做签名和校验,并不讲原理; golang封装的ecdsa目前只有用私钥加密,公钥做校验,没有解密环节;所以目前可以应用于数字签名; 以下为封装: /** 通过一个随机key创建公钥和私钥 随机key至少为36位 */ func getEcdsaKey(randKey string) (*ecdsa.PrivateKey, ecdsa.PublicKey, error){ var err error var prk *ecdsa.PrivateKey var puk ecdsa.PublicKey var cu...阅读全文

你想做区块链?讲师帮你更好理解区块链的商业逻辑!让我们一起报名EMBA国际总裁班学习吧~

“有有一种特别遗憾的选择叫 “啊,他们都报了国际总裁研修班,就我没时间去?!” 老板,果断一点,就现在 !” 作为总裁班最受学员追捧的课程。金融、保险、证券、物联网、通信、工业等行业最顶尖的精英学员加入区块链EMBA国际总裁研修班,他们马上将在北京会师碰面!EMBA总裁班首期本将于9月19号开课!!! 报名即可入学习班QQ群及微信群与老师和同学直接交流。 报名即享有本期学不会或考试通不过,下期免费再学待遇。 通过课程结业后,颁发“中国区块链EMBA总裁班”结业证书及工业和信息化领域急需紧缺人才培养工程—北邮在线“ 区块链网络架构师”课程培训证书。 北邮在线区块链EMBA国际总裁研修班第1期(北京) 一、背景区块链技术是当下信息技术产业最前沿的技术之一,也是继大数据技术后最受各界关注的领域,我...阅读全文

博文 2017-08-08 10:05:15 北邮区块链张权

Golang学习笔记之HTTPS

一:HTTPS介绍 HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用TLS/SSL加密的HTTP协议。 HTTP和HTTPS的区别 • HTTPS是加密传输协议,HTTP是名文传输协议 • HTTPS需要用到SSL证书,而HTTP不用 • HTTPS比HTTP更加安全,对搜索引擎更友好,利于SEO • HTTPS标准端口443,HTTP标准端口80 • HTTPS基于传输层,HTTP基于应用层 • HTTPS在浏览器显示绿色安全锁,HTTP没有显示 二、HTTPS证书 正式发布的时候,...阅读全文

博文 2018-12-22 18:34:43 学生黄哲

区块链基础入门

一、区块链产品概览 1.1 区块链产品及 区块链产品主要有:底层平台、开放平台、应用场景 1.2 区块链产品特点 底层平台 通用基础设置 与业务场景无关 技术门槛较高 多技术结合:分布式存储+点对点网络+密码学等等 开放平台 与业务场景相关性低 面向区块链应用开放者 起步探索阶段,成熟产品相对较少 应用场景 可应用的领域和场景广泛 与业务场景密切相关 具有可拓展性 易形成价值网络 二、底层平台 底层平台有:公有链、 联盟链、私有链 2.1 底层平台-公有链 向全世界所有人开放,每个人都能成为系统中的一个节点参与记账的区块链,它们通常将激励机制和加密数字验证相结合,来实现对交易的共识。 2.2 底层平台-联盟链 若干个机构共同参与记账的区块链,即联盟成员之间通过对多中心的互相信任来达成共识。联...阅读全文

Docker 1.8.0增加Content Trust,容器安全性提升

![alt 文本](http://blog.tenxcloud.com/wp-content/uploads/2015/08/docker1.8.01.jpg) Docker这家初创公司,让Docker在Linux容器中构建和部署应用越来越受欢迎,最近宣布了一项行特性,Docker在其最新版本的开源产品中增添Content Trust,这项功能将为使用容器的人们提供一个额外的安全层。 Docker Content Trust ,现在可以在Docker1.8.0版本中获取,它允许开发者在Docker Hub上下载container images之前检查其合法性。此项措施有望确保企业在利用Docker在自己的基础设施上部署应用时,不会有任何潜在的危险。 这对Docker来说异常...阅读全文

Go 实现安全 cookie

我第一次学习 Go 的时候,已经有了一定的 Web 开发经验,但是直接使用 cookie 的经验还比较少。我之前是用 Rails 的,在 Rails 里面如果要读/写 cookie,并不需要自己去实现所有的安全措施。 如你所见,Rails 偏向于通过默认配置就将大部分事情搞定。你不必去设置 CSRF 反制措施,或者做任何特殊操作来加密 cookie。在较新版本的 Rails 中这一切都默认帮你做好了。 用 Go 开发就完全不同了,这些事情并没有默认帮你做好。所以当你想使用 cookie 时,了解所有这些安全措施就很重要:为什么存在有这些措施,以及如何在我们自己的程序中使用它们。本文旨在帮助你了解上述知识点。 > 本文目的不在于引发关于哪条路线更好的讨论/争论。两者都有各自的优点,这里不去比较...阅读全文

博文 2018-11-21 09:44:27 polaris

2019公链项目实战 区块链公链项目实战 golang公链项目实战(视频+源码)

任务1:001 – 内容介绍.mp4任务2:002 -Block结构.mp4任务3:003 – 根据区块数据生成区块HASH.mp4任务4:004 – CreateGenesisBlock.mp4任务5:005 – Blockchain结构.mp4任务6:006 – 添加新的区块.mp4任务7:007 – ProofOfWork框架.mp4任务8:008 – 工作量证明算法分析.mp4任务9:009 – target移位处理.mp4任务10:010 – 挖矿算法完整实现.mp4任务11:011 – 判断区块Hash的有效性.mp4任务12:012 – 课程目标.mp4任务13:013 – 区块的序列化和反序列化.mp4任务14:014 – boltdb数据库的创建或者打开.mp4任务15:0...阅读全文

博文 2019-03-12 20:34:43 java20192019

golang获取一串数字中与给定数最接近的数字

今天需要写一个算法,获取一串数字中与给定数最接近的数字,代码如下 package main import ( "fmt" ) func main(){ arr:=[]int{12,16,29,34,39,43,55,64,71,89,90,9} zuijin:=get_zuijin(40,arr) fmt.Println(zuijin) } func get_zuijin(this int,arr []int) int{ min:=0 if this==arr[0]{ return arr[0] }else if this>arr[0]{ min = this-arr[0] }else if this阅读全文

博文 2015-09-12 12:00:07 别人说我名字很长

真正毕业版本=「匹兹堡大学毕业证书」PITT证书原版一模一样

匹兹堡大学毕业证书【 微/Q:939665009 —— WeChat:939665009】PITT毕业证书/美国匹兹堡大学毕业证书/联系人Ann代办国外(海外)澳洲 加拿大 韩国 美国 新西兰 等各大学毕业证书,修改成绩单分数,留信认证,文凭,diploma,degree [删除请点击百度快照]真实认证.海外回囯的同学定制毕业证书、真实认证、毕业证书、学位证书、使馆公证、囯外真实学位认证、使馆留学回囯人员证明、录取通知书、Offer、在读证明、雅思托福成绩单、网上存档永久可查![实体经营,,值得信赖]十五年致力于帮助留学生解决无法毕业,无法认证真实的难题;并帮助留学生制作国外大学毕业证书(微 Q:939665009),成绩单,真实认证、成绩单以及回国所需的真实学位真实认证。 美国匹兹堡大学毕...阅读全文

上海徐汇区互联网公司招聘Golang开发工程师啦

Hi 大家好,我是 Eva,我们公司来招聘Golang开发工程师啦,公司base在上海徐汇,工作内容和要求如下,有兴趣的小伙伴们欢迎发送简历至我的邮箱:eva.wang@trustasia.com,谢谢。 Golang 开发工程师 职位诱惑 : 弹性工作制、不加班、rMBP开发、技术大 牛多、职能部门妹子多 职责描述: 后端服务程序开发; 使用Golang进行PKI、SSL、数字签名方面的研发; 使用高并发进行网络漏洞检测、扫描、抓取分析; 任职要求: 熟练使用Golang进行Web应用开发,会使用相关框架(beego、gin); 精通一门以上编程语言(C/C++,Go,Java,Python等); 熟悉数据结构,有并发编程经验更佳; 熟悉数据库的使用(...阅读全文

golang-MD5

什么是MD5? MD5:为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321. MD5算法具有以下特点: 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值很容易。 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。 4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。 MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。 下面是在goalng下如何实现md...阅读全文

Go and HTTPS

自:http://tonybai.com/2015/04/30/go-and-https/ 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对HTTPS做一些深度挖掘。主要途 径:翻阅网上资料、书籍,并利用golang编写一些实验examples。 一、HTTPS简介 日常生活中,我们上网用的最多的应用层协议就是HTTP协议了,直至目前全世界的网站中大多数依然只支持HTTP...阅读全文

博文 2016-03-31 20:00:00 BlueSy2008

《读书笔记系列》==> 《The Way to Go》 2

4.3 常量 常量使用关键字 const 定义,用于存储不会改变的数据。 存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。 常量的定义格式:const identifier [type] = value,例如: const Pi = 3.14159 在 Go 语言中,你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。 显式类型定义: const b string = "abc" 隐式类型定义: const b = "abc" 一个没有指定类型的常量被使用时,会根据其使用环境而推断出它所需要具备的类型。换句话说,未定义类型的常量会在必要时刻根据上下文来获得相关类型。 var n int f(n + 5) // 无类型的数字型常量 “5”...阅读全文

移动终端app测试点总结

以下所有测试最后必须在真机上完整的执行 1、安装、卸载测试 在真机上的以及通过91等第三方的安装与卸载 安装在手机上还是sd卡上 2、启动app测试 3、升级测试   数字签名、升级覆盖安装、下载后手动覆盖安装、跨版本升级、升级后可以正常使用。   覆盖安装要确保数据库有字段更新的话,能正常更新,否则就容易导致app异常。 4、功能测试   包括功能点、业务逻辑、关联性(主要测试客户端与PC端的交互,客户端处理完后,PC端与客户端数据一致)、   服务端接口测试(主要通过访问服务端接口来验证服务端业务逻辑功能点是否正确) 5、数据对比测试   可在模拟器或真机上进行,同时与数据库中实际的插入记录做对比。还要对比主站的相同流程...阅读全文

OTP一次性动态密码工具实现

对于企业内部信息安全或行业安全合规性需求,3A认证、授权、审计是必要的基础安全审查项。认证安全机制要求双因素认证,从技术要可使用基于数字证书和OTP来实现满足。 OTP分为两种技术算法HOTP(基于次数 RFC 4226)和TOTP(基于时间 RFC 6238)标准。而目前开源的Google Authenticator工具很好的实现了OTP移动端APP的使用与密钥管理。 为了在企业运维安全加固需求可以开发自己的后端的OTP认证服务器和统一用户认证管理中心,结合Google Authenticator工具快速整合用户的移动端动态密钥的生成。 可适用的双因素场景:网络设备的认证(Radius协议)、企业内部开发的应用系统认证集成。 AuthOTP golang实现google authencat...阅读全文

博文 2019-01-07 00:34:48 Xiao_Yang

Golang菜鸟教程-学习笔记-Day2

Golang菜鸟教程-学习笔记-Day2 大纲 常量 常量 常量在运行时,不会被修改 常量中的数据类型可以是布尔型,数字型,字符串类型 常见的定义形式 const indetifier [type] = value 常量的应用 package main import "fmt" func main() { const LENGTH int = 10 const WIDTH int = 5 var area int const a,b,c = 1, false, "str" //多重赋值 area = LENGTH * WIDTH fmt.Printf("area is %d\n", area) println(a,b,c) fmt.Println(a,b,c) } 常量作为枚举 packag...阅读全文

博文 2019-01-29 00:34:43 笑吧小鸟

golang-MD5

什么是MD5? MD5:为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321. MD5算法具有以下特点: 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值很容易。 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。 4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。 MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。 下面是在goalng下如何实现md...阅读全文

Bytom国密网说明和指南

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 国密算法是指国家密码管理局制定的自主可控的国产算法,包括一系列密码学算法:SM1、SM2、SM3、SM4、SM7、SM9、以及祖冲之算法。最常用的三种商用密码算法是 SM2椭圆曲线公钥密码算法、SM3密码杂凑算法以及 SM4分组密码算法。 其中,SM2 算法属于椭圆曲线公钥密码系统,相较于 RSA 公钥密码系统,这种新型的公钥密码系统拥有加解密速度更快,使用的密钥更短的优点。SM2算法密钥长度为192至256位长度的安全性就能达到 RSA 算法2048至4096位密钥长度的安全要求。SM2的优异性能取决于求解椭圆曲线...阅读全文

博文 2018-10-26 08:34:40 比原链Bytom

关于语音识别你了解多少?

语音识别有哪些功能 语音输入系统 1、提取有效的声音信息2、从有效信息识别身份3、声音信号转换成电信号 语音控制系统 通过语音信息与实际内容进行匹配 智能对话系统 智能理解用户的需求 实现过程 转化语音信号 1、语音预处理(语音信号采样、反混叠带通滤波、去除个体发音差异和设备、环境引起的噪声影响等)2、声波------>电信号------>二进制3、语音识别只能找到与说话者发音最为相似的字音。在判断相似性时 ,我们首先需要设定好标准读 比较两个向量之间的夹角大小 ,把特征分析提取的一组随时间而变的特征矢量序列和事先通过学习后存在机器里样本序列进行比较。我们将两个向量相乘再除以他们各自的模得到他们之间的夹角 ,夹角越小 ,向量之间也就越为相似 ,从而语音识别得以找到最接近每个人发音的字形。(模...阅读全文

golang template模版如何判断变量是否存在/指针是否为空

golang template模版如何判断变量是否存在/指针是否为空 也就是语法{{if .Var}}的含义。 其含义是变量Var是否为真值,判断逻辑根据变量的类型,和golang语言本身判断变量是否为真的逻辑是一样的。 数字型:值不等于零 字符串:不是空串 指针类型:不为空 布尔类型:为True值 比较常用的是指针类型是否为空(对于其他基本类型来说,可以通过简单的比较运算来完成),语义上说就是属性是否存在,举个例子来说: package main import ( "os" "log" "text/template" ) type Address struct { City string Street string Apt int } func main() { templateText ...阅读全文

博文 2020-01-06 05:32:43 CodingCode

2019 Golang公链项目实战

百度网盘任务1:001 - 内容介绍.mp4任务2:002 -Block结构.mp4任务3:003 - 根据区块数据生成区块HASH.mp4任务4:004 - CreateGenesisBlock.mp4任务5:005 - Blockchain结构.mp4任务6:006 - 添加新的区块.mp4任务7:007 - ProofOfWork框架.mp4任务8:008 - 工作量证明算法分析.mp4任务9:009 - target移位处理.mp4任务10:010 - 挖矿算法完整实现.mp4任务11:011 - 判断区块Hash的有效性.mp4任务12:012 - 课程目标.mp4任务13:013 - 区块的序列化和反序列化.mp4任务14:014 - boltdb数据库的创建或者打开.mp4任务...阅读全文

博文 2019-10-29 15:03:42 一直努力跑

生成本地 HTTPS 加密证书的工具mkcert

mkcert 是生成本地 HTTPS 加密证书的工具,一个命令就可以生成证书,不需要任何配置。 **使用示例** ![image](https://static.oschina.net/uploads/space/2018/0705/151103_zHGf_2720166.jpg) 目前仅支持 Linux 和 macOS 系统,未来计划支持 Windows 系统。 **安装使用** 在 macOS 上,使用 Homebrew 进行安装 在 Linux 上,安装 certuti...阅读全文

开源项目 2018-07-05 16:30:01 网友

golang[34]-区块链-对称加密与非对称加密

对称加密对称密钥加密(英语:Symmetric-key algorithm)又称为对称加密、私钥加密、共享密钥加密,是密码学中的一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。事实上,这组密钥成为在两个或多个成员间的共同秘密,以便维持专属的通信联系。与公开密钥加密相比,要求双方获取相同的密钥是对称密钥加密的主要缺点之一。常见的对称加密算法有DES、3DES、AES、Blowfish、IDEA、RC5、RC6。对称加密的速度比公钥加密快很多,在很多场合都需要对称加密。非对称加密公开密钥加密(英语:Public-key cryptography),也称为非对称加密(英语:asymmetric cryptography),是密码学的一种算法,它需要两个密钥...阅读全文

博文 2018-12-13 00:35:45 jonson_jackson

go语言示例:常量

go语言支持的常量有字符型,字符串型,布尔型和数字型。 用const关键字来定义常量。 能有var语句的地方,就能有const语句。 常量表达式能以任意精度进行计算。常量是没有类型的,除非有语句给出了,例如强制类型转换。 数字常量在上下文需要类型时候,其类型会被自动加上。比如说变量赋值或者函数调用中。本示例中的math.Sin(n),sin 函数需要一个int64类型,n会被自动转换成int64. Plain Text code ? 1 2 3 4 5 6 7 8 9 10 11 12 package main import "fmt" import "math" const s string = "constant" func main() { fmt.Println(s) const n...阅读全文

博文 2015-06-17 23:01:28 xming4321

golang 统计uint64 数字二进制存储中1的数量

package mainimport ( "fmt")// pc[i] is the population count of i.var pc [256]bytefunc init() { for i := range pc { pc[i] = pc[i/2] + byte(i&1) }}func PopCount(x uint64) int { return int(pc[byte(x>>(0*8))] + pc[byte(x>>(1*8))] + pc[byte(x>>(2*8))] + pc[byte(x>>(3*8))] + pc[byte(x>>(4*8))] + pc[byte(x>>(5*8))] + pc[byte(x>>(6*8))] + pc[byte(x>>(7*8))...阅读全文

博文 2018-07-21 00:30:01 barfoo

Go语言学习5:Go语言的变量类型

布尔类型 Go中布尔类型的值有true和false两种,由bool关键字定义 数字类型 由int定义的类型在Go中位数是确定的,例如在32为系统上int就是32位,在64位系统上就是64位。如果想定义其他位数的int数据,则需要明确指定,例如int8,int16,int32等。Go中还有两种个别的别名型数据:rune和byte,byte是uint8的别名,rune是int32的别名,rune主要用来遍历字符串中的字符(采用UTF-8编码) 常量 Go中用关键字const定义常量,常量的类型只能是,数字型,字符串,bool类型,定义形式可以如下: const a=10 枚举类型 用关键之iota来定义 const( a=iota b=iota )其中a=0,b=1,定时的时候可以取消重复的io...阅读全文

【go密码学】-数字签名

介绍 数字签名就是只有消息的发送者才能产生的别人无法伪造的一段数字串,这段数字串是对信息真实性的有效证明。 发送者:生成签名 接受者:验证签名 非对称密码机制 非对称加密中,公钥用于加密,私钥用于解密。数字签名中相反,私钥生成签名,公钥验证签名。 数字签名方法 直接对消息签名 对消息的散列值签名 先用单向散列函数求出消息的散列值,然后再将散列值进行加密。 数字签名算法 RSA 案例一 package main import ( "crypto/rsa" "crypto/rand" "fmt" "crypto/md5" "encoding/base64" "crypto" ) //用公钥加密,私钥解密 //用私钥签名,公钥验证 //公钥是公开的,任何人可以使用公钥,私钥非公开(保存好) //一...阅读全文

博文 2018-10-13 10:34:42 jincheng828

【go密码学】-非对称加密算法

RSA RSA加密 在RSA中,明文、密钥和密文都是数字。加密过程可以用下列公式: 加密公式中出现的E和N的组合就是公钥。 RSA解密 公式: 数字D和N组合起来就是RSA的私钥。 生成密钥对 求N N = p x q (p、q为质数)。q、q太小容易被破译,太大会导致计算时间很长。N = 17 x 19 = 323 求L(L是仅在生成密钥对的过程中使用的数) L = lcm(p-1,q-1) (L是p-1和q-1的最小公倍数)L = lcm(16,18) = 144 求E 1 < E < Lgcd(E,L) = 1 ;表示E和L的最大公约数为1;E = 5,7,11,13,17,19,23,25,29,31 求D 1 < D < LE x D mod L = 1D = 29 go应用 pa...阅读全文

博文 2018-10-12 20:34:38 jincheng828

GO与https

Go和HTTPS 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对HTTPS做一些深度挖掘。主要途 径:翻阅网上资料、书籍,并利用golang编写一些实验examples。 一、HTTPS简介 日常生活中,我们上网用的最多的应用层协议就是HTTP协议了,直至目前全世界的网站中大多数依然只支持HTTP访问。 使用Go创建一个HTTP Server十分Easy,十几行代码就能...阅读全文

博文 2016-10-21 17:00:10 zhongzh86

《Go语言四十二章经》第四章 常量

《Go语言四十二章经》第四章 常量 作者:李骁 ## 4.1 常量以及iota 常量使用关键字 const 定义,用于存储不会改变的数据。 存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。 常量的定义格式:const identifier [type] = value,例如: ```go const Pi = 3.14159 ``` 在 Go 语言中,你可以省略类型说明符 [type],因为编译器可以根据变量(常量)的值来推断其类型。 显式类型定义: const b string = "abc" 隐式类型定义: const b = "abc" 一个没有指定类型的常量被使用时,会根据其使用环境而推断出它所需要具备的类型。换句话说,未定义类型的常量会在必要时刻根据...阅读全文

Go语言开发(十五)、Go语言常用标准库五

Go语言开发(十五)、Go语言常用标准库五 一、md5 1、md5简介 md5在crypto/md5包中,md5包提供了New和Sum方法。 func New() hash.Hash func Sum(data []byte) [Size]byte hash.Hash继承了io.Writer,因此可以将其当成一个输入流进行内容的更新。 type Writer interface { Write(p []byte) (n int, err error) } Write方法将p中的内容读入后存入到hash.Hash,最后在Sum方法通过内部函数checkSum计算出其校验和。Sum函数是对hash.Hash对象内部存储的内容进行校验和计算然后将其追加到data的后面形成一个新的byte切片。通常...阅读全文

博文 2019-01-20 00:35:14 天山老妖S

关于语音识别你了解多少?

语音识别有哪些功能 语音输入系统 1、提取有效的声音信息 2、从有效信息识别身份 3、声音信号转换成电信号 语音控制系统 通过语音信息与实际内容进行匹配 智能对话系统 智能理解用户的需求 实现过程 转化语音信号 1、语音预处理(语音信号采样、反混叠带通滤波、去除个体发音差异和设备、环境引起的噪声影响等) 2、声波------>电信号------>二进制 3、语音识别只能找到与说话者发音最为相似的字音。在判断相似性时 ,我们首先需要设定好标准读 比较两个向量之间的夹角大小 ,把特征分析提取的一组随时间而变的特征矢量序列和事先通过学习后存在机器里样本序列进行比较。我们将两个向量相乘再除以他们各自的模得到他们之间的夹角 ,夹角越小 ,向量之间也就越为相似 ,从而语音识别得以找到最接近每个人发音的字...阅读全文

golang学习笔记3:常量与变量

常量常量使用关键字 const 定义,用于存储不会改变的数据。存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。常量的定义格式: const identifier [type] = value ,例如:1. const Pi = 3.14159在 Go 语言中,你可以省略类型说明符 [type] ,因为编译器可以根据变量的值来推断其类型。显式类型定义: const b string = "abc"隐式类型定义: const b = "abc"一个没有指定类型的常量被使用时,会根据其使用环境而推断出它所需要具备的类型。换句话说,未定义类型的常量会在必要时刻根据上下文来获得相关类型。1. var n int2. f(n + 5) // 无类型的数字型常量 “5” 它...阅读全文

博文 2018-10-12 00:34:42 编程老司机

区块链技术

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 第一章:区块链基本知识 1.区块链概念 顾名思义,“区块链”是一个链表,这个链表由所有人共同维护和认可。 1.1.什么是区块链 区块链(Block chain)是一种分布式共享数据库(数据分布式储存和记录),利用去中心化和去信任方式集体维护一本数据薄的可靠性的技术方案。 如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。 1.2.区块链的特点 区块结构有两个非常重要的特点: l每个区块的块头包含了前一区块的交易信息的压缩值,因此从创始块到当前区块形成了链条。 l每个区块主体上的交易记录是前一区块创建后、该区块创建前发生的所...阅读全文

博文 2019-09-12 18:02:37 链客

区块链技术背后的运行逻辑

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链技术可能是自互联网技术以来最伟大的发明。区块链可以在不需要有中央权威机构的情况下或不需要双方信任的情况下交换价值或财富。想像一下你和我要赌明天旧金山的天气,赌50美元。我赌明天出太阳,你赌明天会下雨。今天,我们会有三种方式来管理我们之间的赌约: 1、我们可以相信对方。无论下雨还是出太阳,输的一方都会给赢的一方50美元。如果我们是朋友,这种管理方式很好。不过,无论是朋友还是陌生人,总会有人赖账的。 2、我们可以将赌约写下来形成合同。签订合同,双方履行最后赌约就有了保障,然而,如果输掉的一方不愿意付钱的话,赢的一方还要花额外的费用来打官司等等,这可能要花很长时间。尤其是对于小额现金,这可能不是最好的交易管理方式...阅读全文

java和go中的密码学-系列教程目录

加解密技术在我们平日工作生活中应用随处可见、不可或缺。当前如火如荼的区块链技术的确权无信任实现的底层根基就是加解密技术。因此,掌握常见加解密技术是非常重要的,也是程序员进入区块链行业的必备知识能力。本系列是本人学习加解密知识过程中的总结整理,希望能帮到大家。本系列将会主要以Golang和java的代码案例对比、互通学习的形式讲解常见加解密知识,希望读者阅读后能快速掌握golang和java中加解密技术。声明:本系列是一年前学习笔记后的总结,当日学习过程中部分笔记片段直接摘录自网络或者来源于书籍,如今无法找到源地址。故侵删!推荐阅读推荐书籍《 Java加密与解密的艺术》作者梁栋,强烈推荐。此书已经帮我们梳理好知识脉络,可使我们学习少些懵逼困惑!一.不可不知的密码学历史 1.密码学需要基于数学的...阅读全文

博文 2018-10-06 14:34:39 _Danniel_