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

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

Go大咖说第一期《比特币、区块链和Go开发》

个人介绍姜家志,2013 年开始接触比特币,之后开发了比太钱包,现在在比特大陆从事比特币相关的开发工作。引言大家好,我是姜家志首先感谢下谢大神的邀请,能有机会和大家进行交流,我是 2013 年开始接触比特币,当时花了很长时间在了解比特币原理和看比特币的源代码上。之后我们发现比特币没有好用的钱包,就开发了 "比太钱包"(bither), 比太钱包是中国人开发的唯一的一个上 bitcoin.org 的钱包,截图中就是比太钱包。另外的一个是 btc.com 钱包是我现在所在的公司开发的钱包,是由我们公司的欧洲团队开发的钱包。我从 2014 年开始接触 Go 语言,接触之后就深深的喜欢上了 Go, 之后就开始有计划地学习 Go 语言,自己做了几个 demo 性质的网站,主要是个人 blog、论坛、和...阅读全文

博文 2017-07-22 02:17:42 姜家志

腾讯云之无服务器云函数

使用腾讯的 无服务器云函数启动了一个服务,用golang代码生成以太坊的私钥跟地址。 https://service-exvd0ctl-1258120565.ap-beijing.apigateway.myqcloud.com/release/addr genEthAddr.png 无服务器云函数是什么 腾讯云的无服务器云函数,跟 aws lambda类似,把一段代码放到云函数服务器上,设定好访问路径, 就可以对外访问了。之前若想发布1段20行代码执行的服务,你可能需要买个vps,现在用腾讯的云函数即可,灵活方便,省资源。 小程序 如果要做些工具类微信小程序,生成eth、btc地址,查看天气数据,雾霾指数,运行个云函数,小程序去请求即可。只要不保存大量数据, 搭建建服务器的费用可以省了。 云...阅读全文

博文 2018-11-29 00:34:43 shooter

https原理以及golang基本实现

关于https 背景知识 密码学的一些基本知识 大致上分为两类,基于key的加密算法与不基于key的加密算法。现在的算法基本都是基于key的,key就以一串随机数数,更换了key之后,算法还可以继续使用。 基于key的加密算法又分为两类,对称加密和不对称加密,比如DES,AES那种的,通信双方一方用key加密之后,另一方用相同的key进行反向的运算就可以解密。 不对称加密比较著名的就是RSA,加密的时候有一个公钥和一个私钥,公钥是可以交给对方的,a给b发送信息,a用自己的私钥加密,b用a的公钥解密,反之,b给a发送信息,b用自己的私钥加密。 在通信之前,需要经过一些握手的过程,双方交换公钥,这个就是key exchange的过程,https最开始的阶段就包含了这个key exchange的过...阅读全文

博文 2015-07-12 03:00:00 Goden

Golang加密系列之RSA

Golang加密系列的最后一篇,嗯,RSA涉及的概念太多,弄了好久才搞清楚。。。 代码的结构如下图 PS:StarUML这玩意在Mac上所有连到Interface的线都变成直线了...我很惆怅... 定义一个对外开放的接口 package rsa import "crypto" type Cipher interface { Encrypt(plaintext []byte) ([]byte, error) Decrypt(ciphertext []byte) ([]byte, error) Sign(src []byte, hash crypto.Hash) ([]byte, error) Verify(src []byte, sign []byte, hash crypto.Hash) ...阅读全文

博文 2015-11-06 15:00:09 君子藏锋

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

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

用go语言模拟客户端对服务端发送get和post请求

client.go package main import ( // "bytes" "fmt" "io/ioutil" "net/http" "net/url" ) var client = &http.Client{} func Get() { //向服务端发送get请求 request, _ := http.NewRequest("GET", "http://192.168.1.35:9091/?publicKey=-----BEGIN+PUBLIC+KEY-----%0D%0AMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZsfv1qscqYdy4vY%2BP4e3cAtmv%0D%0AppXQcRvrF1cB4drkv0haU24Y7m5qYtT52...阅读全文

博文 2015-01-08 12:00:01 秦思_li

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

30亿条个人信息被盗,全站HTTPS迫在眉睫

本文首发于微信公众号:网络安全生命周期原文链接:30亿条个人信息被盗,全站HTTPS迫在眉睫【特大流量劫持事件】据新华网报道,日前,浙江绍兴市越城区公安分局侦破一起特大流量劫持案,涉案主角瑞智华胜,涉嫌非法窃取用户个人信息30亿条,涉及百度、腾讯、阿里、京东、新浪和今日头条等全国96家互联网公司产品,几乎涵盖了国内主要互联网企业。原来这家公司是通过流量劫持(HTTP劫持)的方式,非法收集个人信息并盗用用户认证凭据(Cookie)进行精准营销(加粉、点赞、发帖、添加广告等)。【根因分析】目前广泛使用的HTTP协议,由于是明文传输,往往会被劫持,其中用于身份认证的凭据(Cookie)很容易被窃取,此外劫持者还会在返回的网页内容中添加js脚本,用于展示广告等原始网页中并不存在的内容。要避免被劫持,...阅读全文

大型网站的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

区块链笔记

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 广义和狭义的区块链广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本(分布式数据库)。 区块链结构与特征1) 一个分布式的链接账本,每个账本就是一个“区块”; 2) 基于分布式的共识算法来决定记账者; 3) 账本内交易由密码学签名和哈希算法保证不可篡改; 4) 账本按产生的时间顺序链接,当前账本含有上一...阅读全文

博文 2019-09-23 17:32:46 链客

golang 生成RSA公钥和私钥文件

package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "os" ) func main() { //rsa 密钥文件产生 GenRsaKey(1024) } //RSA公钥私钥产生 func GenRsaKey(bits int) error { // 生成私钥文件 privateKey, err := rsa.GenerateKey(rand.Reader, bits) if err != nil { return err } derStream := x509.MarshalPKCS1PrivateKey(privateKey) block := &pem.Block{ Type: "R...阅读全文

博文 2016-04-29 20:00:01 su_sai

golang RSA加密解密程序

package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "errors" "fmt" ) // 加密 func RsaEncrypt(origData []byte) ([]byte, error) { block, _ := pem.Decode(publicKey) //将密钥解析成公钥实例 if block == nil { return nil, errors.New("public key error") } pubInterface, err := x509.ParsePKIXPublicKey(block.Bytes) //解析pem.Decode()返回的Block指针实例 i...阅读全文

博文 2016-04-20 21:00:01 su_sai

Golang创建最简单的HTTP和HTTPS服务

Golang可以用很短的代码实现HTTP和HTTPS服务 HTTP服务 HTTP是基于传输层TCP协议的。 package main import ( "net/http" "fmt" "log" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){ fmt.Fprint(w, "Hello world") }) log.Fatal(http.ListenAndServe(":5001", nil)) } HTTPS服务 HTTPS服务不同于HTTP服务,HTTPS是HTTP over SSL或HTTP over TLS。 SSL是“Secure Sockets Layer”的缩写...阅读全文

博文 2018-09-20 16:34:43 肥羊

golang https

Go支持https协议的简单例子 我们知道除了http方式访问网页之外,还有一种加密的https方式。Go语言的net/http包中包含了这种https页面访问方式的支持。net/http包中的ListenAndServeTLS就是提供这个功能的。我们可以先看一下这个函数的原型。 func ListenAndServeTLS(addr string, certFile string, keyFile string, handler Handler) error 从上面的函数原型我们可以看出,其实和http方式的差别就在于需要提供一对公钥文件certFile和私钥文件keyFile。 我们在linux下面可以使用下面的命令来生成一对测试的公钥和私钥文件。 openssl genrsa -out...阅读全文

博文 2014-10-04 19:27:23 flyking

区块链笔记

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 广义和狭义的区块链广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本(分布式数据库)。 区块链结构与特征1) 一个分布式的链接账本,每个账本就是一个“区块”; 2) 基于分布式的共识算法来决定记账者; 3) 账本内交易由密码学签名和哈希算法保证不可篡改; 4) 账本按产生的时间顺序链接,当前账本含有上一...阅读全文

博文 2019-09-29 14:32:52 链客

使用golang进行证书签发和双向认证

前言 数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。证书签发涉及到了非对称加密方面的知识,这里介绍使用golang中的x509标准库进行证书自签发,还有证书签发后如何使用golang进行双向认证. 自签发证书 生成根证书 根证书是CA认证中心给自己颁发的证书,是信任链的起始点.这里我们自己做CA使用openssl命令来生成根证书. 首先生成私钥 openssl genrsa -out key.pem 2048 然后根据私钥提取公钥 openssl rsa -in key.pem -pubout -out key.pub 开始生成X509格式的自签名证书,会要求输入区别名DN的各项信息(国家,城市,组织,姓名,email等. penssl req -x509 ...阅读全文

博文 2017-06-05 15:06:14 pinecone

公共云运维安全常见四大难题及解决方案

乘长假期间春光明媚,得空回顾了一下十年工作。 深以为,运维安全绝对是企业安全保障的基石。 看到这儿,有些程序猿不禁要问,哥们,你是不是写错了,应该是安全运维吧! 非也! 事实上,安全运维和运维安全是两个概念。 我的理解:安全运维是工程师对各种安全设备和软件进行运维保障系统安全,而运维安全相比之下是涵盖了整个云计算系统和安全有关的方方面面。本文主要探讨公共云环境下运维安全常见的难题及解决方案。 ![image002.jpg](http://studygolang.qiniudn.com/160216/a6de211d857d683e5c3f7848cfe83b87.jpg) 目前使用公共云的用户可以分为两类: 一是一开始业务就部署在公共云上面,主...阅读全文

BDT平台携手区块链,打造最有价值的数字资产平台!

区块 链这一倍受热议的蓝海项目,正在全球范围内吸引着无数参与者蜂拥而至。根据区块链公司DERO的调查显示:全世界范围内有455家公司共获得了19.47亿美元的融资。仅在中国境内就有61家公司斩获融资,位列全球第二。可随着区块链+的日益发展,参与者却逐渐发现了它的诸多弊端。[if !supportLists]一、[endif]缺乏隐私性:在区块链公有链中,每一个参与者都能够获得完整的数据备份,交易数据都是公开和透明的。通过帐户和交易信息,可轻松获得参与者的财富、重要资产、商业机密等。这无疑将给参与者带来极大的隐私风险。二、相对安全性缺失:绝对的安全,代表着相对的不安全。区块链技术一大特点就是不可逆、不可伪造,但前提是私钥是安全的。私钥是用户生成并保管的,没有第三方参与。私钥一旦丢失,便无法对账...阅读全文

博文 2018-11-27 18:34:41 栗原芽笙

用 Golang 实现 RSA 加密和签名(有示例)

本文介绍 RSA 干了什么,以及我们怎样用 Go 实现它。 ![](https://raw.githubusercontent.com/studygolang/gctt-images2/master/20200408-Implementing-RSA-Encryption-and-Signing-in-Golang/00.jpg) RSA(*Rivest–Shamir–Adleman*)加密是使用最广的安全数据加密算法之一。 它是一种非对称加密算法,也叫”单向加密“。用这种方式,任何人都可以很容易地对数据进行加密,而只有用正确的”秘钥“才能解密。 > 如果你想跳过解释直接看源码,点击[这里](https://gist.github.com/sohamkamani/08377222d5e3e6...阅读全文

博文 2020-05-05 20:24:53 lxbwolf

专访:听道哥聊互联网江湖——探底黑产,描绘作战地图

我是搬运工,原贴地址:http://click.aliyun.com/m/5826/ 摘要: 保卫阿里云这个中国 35% 的网站都坐落其上的云计算平台和上面的居民,道哥觉得自己守土有责,不容有失。 吴翰清,这个资深黑客拥有诸多身份:写“道哥的黑板报”的“文艺网红”& 阿里云云盾的负责人。 在他心里,第一个身份轻如鸿毛,第二个身份重若泰山。 保卫阿里云这个中国 35% 的网站都坐落其上的云计算平台和上面的居民,道哥觉得自己守土有责,不容有失。 探底黑产,描绘自己的作战地图,是他对自己职责要求的一部分。 他告诉我们一个秘诀:“想要知道中国的黑产有哪些行业,只要看淘宝的禁限售板块就够了。”DDoS攻击,敲诈勒索,暗网黑市,这些黑色产业,往往最终都会涉及到对阿里云上...阅读全文

golang rsa公钥私钥pem文件生成

func main() { //rsa 密钥文件产生 GenRsaKey(1024) } //RSA公钥私钥产生 func GenRsaKey(bits int) error { // 生成私钥文件 privateKey, err := rsa.GenerateKey(rand.Reader, bits) if err != nil { return err } derStream := x509.MarshalPKCS1PrivateKey(privateKey) block := &pem.Block{ Type: "RSA PRIVATE KEY", Bytes: derStream, } file, err := os.Create("private.pem") if err != ...阅读全文

博文 2015-06-17 20:23:37 zb_liang

求助,rsa加密问题

模拟登录百度已经获取公钥字符串 -----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDo5mHL8+BKHRJs26fMT2f8NtGS\n9XrpLIciE0iAZYmfYIZ0Sph9qN0WSjnrfT7osl0hPYEUedcbYLSINRGlv8WAzDHW\nPSMd39hs0sVET7AikE3EKByhyIqjy1V003GygGJwsfRLOCyWBmZ8SJnpYzebyRpV\nCac1DlPIiVut5FE4CwIDAQAB\n go语言如何利用上面字符串公钥加密密码呢?...阅读全文

GO实现简单的RSA加密解密

## RSA加密 RSA的加密过程可以使用一个通式来表达 > 密文=明文EmodN 也就是说RSA加密是对明文的E次方后除以N后求余数的过程。就这么简单?对,就是这么简单。 从通式可知,只要知道E和N任何人都可以进行RSA加密了,所以说E、N是RSA加密的密钥,也就是说E和N的组合就是公钥,我们用(E,N)来表示公钥 >公钥=(E,N) 不过E和N不并不是随便什么数都可以的,它们都是经过严格的数学计算得出的,关于E和N拥有什么样的要求及其特性后面会讲到。顺便啰嗦一句E是加密(Encryption)的首字母,N是数字(Number)的首字母 ## RSA解密 RSA的解密同样可以使用一个通式来表达 > 明文=密文DmodN 也就是说对密文进行D次方后除以N的余数就是明文,这就是RSA解密过程。...阅读全文

博文 2019-05-12 22:50:39 xuthus5

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

Go支持https协议的简单例子

我们知道除了http方式访问网页之外,还有一种加密的https方式。Go语言的net/http包中包含了这种https页面访问方式的支持。net/http包中的ListenAndServeTLS就是提供这个功能的。我们可以先看一下这个函数的原型。 func ListenAndServeTLS(addr string, certFile string, keyFile string, handler Handler) error 从上面的函数原型我们可以看出,其实和http方式的差别就在于需要提供一对公钥文件certFile和私钥文件keyFile。 我们在linux下面可以使用下面的命令来生成一对测试的公钥和私钥文件。 openssl genrsa -out key.pem 2048 ope...阅读全文

博文 2016-03-03 15:00:03 aqiang912

EOS将被大规模黑客攻击?此话怎讲!

EOS自启动漏洞赏金计划以来,上半年赏金已超10万美元。 据IMEOS消息,近日,区块链安全公司PeckShield发现部分EOS用户的秘钥存在严重的安全隐患,部分秘钥允许用强度较弱的助记词,很容易存在“彩虹”攻击,并引发账户数字资产被盗。其实自今年5月以来,EOS就屡遭负面新闻缠身。“史诗级”漏洞、百万私钥被盗、主网瘫痪……安全问题似乎已经成为了EOS很大的硬伤。对于这个1年募资40亿美金的明星项目,支持者认为它开启了区块链3.0时代,反对者将其视为史上最大的空气币、传销币,存在严重的安全隐患。更有区块链研究员预言,明年将会有一场大规模利用EOS漏洞的黑客攻击。“考虑到开发人员处理关键安全问题的方式,这一攻击的出现将很可能是不可避免的。”攻击必将到来,而且不可避免?EOS安全事件频发的根源...阅读全文

博文 2018-07-12 17:34:48 BTC123门户

golang 使用RSA生成公私钥,加密,解密,并使用SHA256进行签名,验证

话不多说直接上代码: package main import ( "crypto" "crypto/rand" "crypto/rsa" "crypto/sha256" "crypto/x509" "encoding/hex" "encoding/pem" "errors" "fmt" ) func main() { //rsa 密钥文件产生 fmt.Println("-------------------------------获取RSA公私钥-----------------------------------------") prvKey, pubKey := GenRsaKey() fmt.Println(string(prvKey)) fmt.Println(string(pubK...阅读全文

博文 2019-08-07 08:32:55 肉山大魔王i

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 学生黄哲

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

使用 Go 添加 HTTPS

简介 实践 生成证书和私钥 修改配置文件 修改启动函数 总结 当前部分的代码 简介 现在的网站没有 HTTPS 都不好意思见人了. 超文本传输安全协议(英语:HyperText Transfer Protocol Secure,缩写:HTTPS;常称为 HTTP over TLS、HTTP over SSL 或 HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在 1994 年首次提出,随后扩展到互联网上。 HTTPS 的信任基于预先安装在操作系统中的证书颁发机构(CA)。因此...阅读全文

博文 2019-10-23 00:34:28 帅气猫咪

Golang 对接宝付、通联、富友金账户...填坑记

一、宝付私钥加密,公钥解密 由于对RSA加密解密原理不是很熟悉,宝付也没有Golang的Demo提供。Go语言库里一般都是私钥解密、公钥加密,或者私钥签名、公钥验签。宝付需要反过来,这里也到好找到了https://github.com/farmerx/gorsa的实现,但始终宝付那边提示签名验证失败。然后就继续找其他的实现了,这就惨了各种Google完全无解。最后回过头来只能,使用加解密原文,跟.Net平台的结果进行比对。一通折腾或者叫折磨之后,发现其实只是每次加密多了117个字节的全是0,后面的加密结果居然是跟其他平台一样的。由此对armerxgorsa做了如下修改,成功。 这个前后花了3天时间。虽然解决问题的方式最终很简单,但是找到这条路的过程可真是披荆斩棘。 二、通联密钥解析 宝付的密...阅读全文

博文 2018-08-05 15:30:02 KendoCross

关于RSA签名验签官网示例用openssl无法验证的问题

关于RSA签名验签官网示例用openssl无法验证的问题 我想用openssl签名,用Go验签,在网上搜到了源码页,但源码页的结果和我的无法对应,如下 源码页 https://golang.org/src/crypto/rsa/pkcs1v15_test.go 其中的签名和验证代码: ``` // These vectors have been tested with // `openssl rsautl -verify -inkey pk -in signature | hexdump -C` var signPKCS1v15Tests = []signPKCS1v15Test{ {"Test.\n", "a4f3fa6ea93bcdd0c57be020c1193e...阅读全文

Go语言无法读取需要密码访问的PEM文件问题(failed to parse private key)

文来自:http://blog.csdn.net/hekejun19861107/article/details/22897429 最近开始做苹果的推送功能,服务端连接apns的时候需要加密连接,对应就需要通过苹果开发者平台生成对应的pns的证书和对应的私钥,然后通过openssl命令转换成PEM格式,本人也是急于完成手头的工作,没有去深入研究openssl命令的使用方法,按网上的教程直接把p12 的私钥转成了pem,对应还上了密码。这时候问题就来了,Go提供的tls库中的LoadX509KeyPair并没有传入密码的选项,只能传入对应的证书和私钥。琢磨半天找到这方法,记录一下: golang 不支持p12解析,所以需要转换成pem 网上有一些,但都不能实现自动转换(非交互模式)。以下是非交...阅读全文

博文 2016-02-05 02:00:01 newsyoung1

golang中几种加密方式的处理

缘由 在与第三方平台进行接入的时候,通常会存在一些签名或者加密的处理,在进行开发的时候,因为语言的不同,需要按照规范进行相应处理。 DES加解密 DES:https://en.wikipedia.org/wiki/Data_Encryption_Standard golang中的标准库crypto/des中有DES的实现,但是golang库的描述比较简单,如果不熟悉DES的加密规则,是不容易进行相应代码编写的,与第三方进行不同语言之间的加密与解密时,也容易混淆,出现错误。 DES区分为CBC和EBC加密模式,并且有不同的填充方式。 CBC(等):https://en.wikipedia.org/wiki/Block_cipher_mode_of_operationPadding:https:...阅读全文

博文 2017-02-09 08:10:14 damon

HD钱包学习小结

在比特币/以太坊等公链上都会用到钱包。钱包主要用来管理用户的私钥,及用户在链上的数字货币,即用私钥对交易进行签名。私钥可用于生成特定消息的签名,此签名可以在不泄露私钥的情况下使用公钥进行验证。 因为私钥极其重要,一旦泄漏就意味着数字资产的所有权就掌握在别人手里。理论上私钥可以是任意的一串随机数字串,不仅难以记忆也没有规律可循,有必要利用一些密码学方法来管理秘钥对(一个秘钥对包括一个私钥和对应的公钥),既方便管理又足够安全。 1. 非确定性钱包 如果只是完全随机生成一个数字串作为私钥,可以使用密码学安全的伪随机数生成器(CSPRNG,Cryptographically secure pseudorandom number generator,密码学安全伪随机数生成器)。这些私钥之间完全独立,相...阅读全文

博文 2018-07-29 11:34:55 shi_qinfeng

Go 语言实现的应用安全网关Janusec Application Gateway

Janusec应用网关(Janusec Application Gateway)一款基于Golang打造的应用安全网关,具备WAF(Web应用防火墙)功能及组合策略配置,天然支持HTTPS(符合PCI-DSS认证要求),无需Agent,私钥加密存储在数据库,提供负载均衡和统一的Web化管理入口。 ![Janusec Application Gateway](https://camo.githubusercontent.com/292d1c91acf55a2572fdfdf91a287c4f1eb1afa4/68747470733a2f2f7777772e6a616e757365632e636f6d2f696d616765732f67617465776179312e706e67) Janu...阅读全文

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

2019-11-25 开源社区超600人参与,奖励超83万FSN

开源社区最新进展!!!在此很高兴向大家报告:FUSION「超能力者」招募计划取得巨大的进展,截止今日共收到来自全球的603位「超能力者」申请!1. 开源社区发布的六项任务中,已有两项任务完成!2. 社区提案任务最新进展。3. 新任务发布!4.与BTCU高校区块链技术社区达成合作。开源社区奖励发放情况截至今日,开源社区共为328位「超能力者」发放了奖励,总计832,898个FSN(时间锁定三个月)。其中, 11月25日完成的奖励发放情况如下:11人,共计22100个FSN(时间锁定三个月)。 其余未完成全部注册流程的「超能力者」,请大家留意微信,我们会帮助你一步步完成注册,当注册步骤全部完成,我们将再次统一派发奖励。截止到发稿,FUSION团队共收到来自全球的603位「超能力者」申请,其中: ...阅读全文

go开发者工具gotool

gotool ======= gotool是一个小而全的Golang工具集,主要是将日常开发中常用的到方法进行提炼集成,避免重复造轮子,提高工作效率,每一个方法都是作者经过工作经验,和从以往的项目中提炼出来的。 ## 2021-7-9更新内容详细使用请看文档 - 添加文件IO操作工具FileUtils - 添加验证码生成工具CaptchaUtils - 添加文件目录压缩和解压缩工具ZipUtis - 字符串数组工具StrArrayUtils ### 如何使用gotool呢? ### 安装 go get github.com/druidcaesa/gotool go.mod github.com/druidcaesa/gotool ### 引...阅读全文

开源项目 2021-07-08 08:55:03

[翻译]Go语言开发苹果推送通知

文在此:http://bravenewmethod.wordpress.com/2011/02/25/apple-push-notifications-with-go-language/ 前两天正巧看到 APNS 没有 Go 的实现,还在琢磨怎么实现一个试试,这下我又省心了。文章本身并不怎么出色,代码倒是有些用途。翻译这篇东西纯粹是为了给自己后面的工作留个资料。大家有用则用,无用就无视吧。 ————–翻译分割线————– Go语言开发苹果推送通知 我开始尝试学习并熟悉 Go 语言,并且做了一些普通的常识,例如,发送苹果推送通知(Apple Push Notifications)。这是我个人对一些开发环境的性能测试。迄今为止,已经有: 使用 Node.js 的推送通知(Push notific...阅读全文

博文 2014-10-09 16:15:11 mikespook

Golang之双向认证

此篇文章主要介绍https用Golang生成证书和Golang实现https认证的过程,至于ssl/tls相关的知识点,我在文章末尾会附上我个人觉得对读者有用的文章。单向验证过程:客户点包含ca.crt,服务端包含server.key和server.crt;客户端:客户端生成一个随机数random-client,传到服务器端;服务端:服务器端接收消息之后,生成一个随机数random-server和包含公钥的证书,一起回馈给客户端;客户端:客户端收到的东西原封不动,加上premaster secret(通过random-client、random-server 经过一定算法生成的数据),再一次送给服务器端,这次传过去的东西是经过服务端的公钥进行加密后数据;服务端:服务端经过私钥(server....阅读全文

博文 2018-07-02 23:34:40 取个帅气的昵称华华

基于Golang打造的开源WAF网关

基于Golang打造的开源WAF网关 Github地址 https://github.com/Janusec/janusec 产品介绍 https://mp.weixin.qq.com/s/OOA9LwPE0ulBqkIFkXax-Q 构建可扩展的应用安全基础设施 Janusec应用网关(Janusec Application Gateway),提供WAF (Web Application Firewall, Web应用防火墙)、统一Web化管理入口、证书私钥保护,Web路由以及可扩展的负载均衡等功能,是应用安全领域的最佳实践。 主要特性 WAF (Web应用防火墙), 拦截SQL Injection, XSS, 敏感数据泄露, CC×××等 组合策略 (多检查点联动,如请求和响应联动) 验...阅读全文

博文 2018-07-24 00:35:45 zhyale

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...阅读全文

大型网站的HTTPS实践(二)-- HTTPS对性能的影响

1 前言 HTTPS在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS也会降低用户访问速度,增加网站服务器的计算资源消耗。 本文主要介绍https对用户体验的影响。 本文最早发表于百度运维部官方博客 2 HTTPS对访问速度的影响 在介绍速度优化策略之前,先来看下HTTPS对速度有什么影响。影响主要来自两方面: 1. 协议交互所增加的网络RTT(round trip time)。 2. 加解密相关的计算耗时。 下面分别介绍一下。 2.1 网络耗时增加 由于 HTTP和HTTPS都需要DNS解析,并且大部分情况下使用了DNS缓存,为了突出对比效果,忽略主域名的DNS解析时间。 用户使用HTTP协议访问http://www.baidu.com(或者www.baidu.c...阅读全文

博文 2015-05-04 11:27:08 luocn99

Darma Cash简介

基础DMC 是在XMR基础上整合树图、DDPOS 、智能合约、预言机、及时通信等技术的区块链项目。一、创新 1、 创新采用树图结构并结合POW + DDPOS 共识模型,保证了币分发的公平性,又能保证币流通的安全性。 通过引入树图协议,让DMC在去中心化且POW条件下实现高TPS和协议层杜绝双花;而DDPOS (不限制节点的去中心化委托权益证明)进一步加强了网络的安全性,树图结构+POW +DDPOS 三者的融合让DMC在性能、安全、去中心化三角中实现了最优解。2、 在XMR基础上原创基于Omni Layer协议的隐私TOKEN,具有比ERC20 更安全、可靠、且完美继承XMR 全部的隐私特性的优点。3、支持golang语言的DVM虚拟机DMC原创并集成了一个基于WASM 优化的轻量级、图灵...阅读全文

博文 2020-03-05 03:32:40 DarmaCash

基于 Web 的 Go 语言 IDE - Wide 1.5.2 发布!

这个版本由热心的开源贡献者加入了**韩语支持**,欢迎各位 gophers 加入到 Wide 的开源开发中。另外,这个版本还改进了 Playground,使其更稳定和易用。目前[黑客派社区](https://hacpai.com)已经支持嵌入 Wide,也欢迎其他广大技术社区进行接入(允许 src 使用来自于 https://wide.b3log.org 的 iframe 嵌入即可)。 ![Playground](https://cloud.githubusercontent.com/assets/873584/21209772/449ecfd2-c2b1-11e6-9aa6-a83477d9f269.gif) **如果你还没有 golang 入门,请访问我们汇编好的 [《Go ...阅读全文

区块链资产安全攻略

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 本文从钱包、密码、软件、备份、交易所、习惯几个方面给出一些指引。 钱包每个钱包在熟练使用之前,请用小额测试。有条件购买硬件钱包。在线钱包如果有 Google 二次验证的,一定要启用,此条规则适用于各交易所,比如币安、OKEx、火币、BigOne、OTCBTC、LocalBitcoins 等等。尽量将自己的资产保留在钱包,交易所只是做一个暂存地。私钥就是资产,切记不要在微信群、电报群、GitHub、博客等一切公共的地方泄漏。尽可能使用离线版 MyEtherWallet,离线版的意思是从官方下载一个 zip 压缩包,可以在不联网的情况下操作钱包。开启 Google 二次验证务必备份二维码以及识别码(密文),更换手机之...阅读全文

博文 2019-09-19 15:03:02 链客

golang手把手实现tcp内网穿透代理(1)

使用golang手把手实现一个tcp内网穿透代理工具。 描述一下应用场景,假设内网也就是我们的局域网,我们的电脑,pc运行了一个tomcat服务器,或者nginx服务器,又或者jdbc数据库,又或者python的服务器。 正常来说,我们是无法通过互联网达到访问局域网的电脑,pc的。 然后我们有一台外网主机,需要实现在外网主机端口支持访问我们内网的服务,这样的好处和目的是什么呢? 方便调试我们的代码,尤其是微信的公众号,以及线上的支付功能回调。凡是需要别人的服务器回调我们的服务器的都需要。 在做工具之前,需要先设计一下怎么实现这个工具,而不是盲目的开工。 首先可以明确的是: 1.控制服务,控制服务需要监听在外网服务器上,假设这个服务名字叫做control_server control_serv...阅读全文

博文 2019-06-13 23:32:42 iamdev