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

手把手教你,COS公链互动操作!

作为领先的内容公链,COS公链的代码全部开源免费。开源地址:https://github.com/coschain/ 看过上一篇文章《0基础,开启COS公链本地化运行》的朋友,相信已经在本地搭建了COS公链。这次,我们开启COS公链互动模式,看看都有哪些好玩儿的互动? 区别于中心化的内容平台,Contentos内容生态里的账户系统分为“本地账户”和“链上账户”两种。 本地账户是一份 keystore 文件,放置在 ~/.coschain文件夹下。一个本地账户存储了一对 contentos 的公私钥,这个keystore 文件可以被 wallet 创建或者导入。 一份本地的 keystore 文件类似如下: { "Name":"testuser", "PubKey":"COS745h9zeER...阅读全文

博文 2019-11-20 17:02:45 内容链Contentos

加解密学习笔记

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

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

分享一个 golang 的数字证书开发库

go-certool 这个库主要设计目标是用来在去中心网络中开发 CA 功能, 密钥使用 ECC 算法,不推荐也不支持 RSA 密钥; 接口 Keychain 用来操作证书信任链,将业务系统中识别的 CA 全部添加到 keychain 对象中,keychain 可以序列化到磁盘上,主要用来验证证书是否合法 type Keychain interface { Verify(cert *x509.Certificate) (chains [][]*x509.Certificate, err error) VerifyCRL(crl *pkix.CertificateList) error Serialize() ([]byte, error) AppendRoot(cert *x509.Cert...阅读全文

一篇文章讲透CDN HTTPS安全加速基本概念、解决方案及优化实践

大家都知道,HTTP 本身是明文传输的,没有经过任何安全处理,网站HTTPS解决方案通过在HTTP协议之上引入证书服务,完美解决网站的安全问题。本文将为大家介绍阿里云CDN HTTPS安全加速传输的基础概念、解决方案、技术优势和优化实践。 关于HTTPS的那些基本概念 需求推进技术革命,互联网是如此诞生,HTTPS也是这样。人们有在互联网上分享和浏览信息的需求,所以信息的传输技术由此诞生并不断升级。 后来,人们位互联网上的信息传输制定了一些准则,也就是网络协议HTTP。从最早1991年发布的HTTP/0.9版本,直到最新的HTTP/2,传输速度也在不断升级。下面,我们来看下关于HTTP都有哪些基本的概念。 HTTP是什么? HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端...阅读全文

Golang面试之HTTPS

引用 HTTPS协议详解(一):HTTPS基础知识 TLS/SSL工作原理 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 深入HTTPS系列四(中间人攻击) HTTPS中间人攻击及防御 建议阅读 SSL/TLS 握手过程详解 细说 CA 和证书 扯一扯HTTPS单向认证、双向认证、抓包原理、反抓包策略 HTTPS协议 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 TLS/SSL全称安全传输层协议Transport Layer Security, 是介于T...阅读全文

博文 2020-05-11 19:32:50 网管同学

初识Clef

初识Clef 以太坊版本1.8.4开始,增加了独立签名人Clef功能,该功能目前尚处在alpha阶段。它主要实现了签署交易、签署数据和管理账户。它的README中是这样描述的: Clef可以用来签署交易和数据,并且可以代替geth的账户管理。这使DApps不依赖于geth的账户管理。 当DApp想要签署数据时,它可以将数据发送给签名者,然后签名者将向用户提供上下文并要求用户签署数据。 如果用户授予签名请求,签名者将签名发送回DApp。 此设置允许DApp连接到远程以太坊节点并发送本地签名的事务。 这可以在DApp连接到远程节点的情况下提供帮助,因为本地以太坊节点不可用,不与同步链或没有内置(或有限)帐户管理的特定以太坊节点同步。 Clef可以在同一台机器上作为守护进程运行,也可以在usb-s...阅读全文

博文 2018-06-03 17:34:38 alphaqiu

一文看懂怎样用 Python 创建比特币交易

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 比特币价格的上上下下,始终撩动着每一个人无比关切的小心脏。从去年初的 800 美元左右,飞涨到去年底到 19783.21 美元最高点,不到1年,便有将近 25 倍的升值速度。尽管眼下又掉回 8000 多美元的价格,但价格差不多能搞出去年同期一个数量级,币圈人士“过去一年比以往 10 年挣的都多”,已经是不争的事实。 而对区块链开发者来说,据说也已经有拿到年新 500 万的天价。所以“跑步进入区块链”,已经成为不少程序员的共识。但是看过很多远离,我们如何才能迅速上手呢?国外网友 Ken Shirriff 在博客中分享了他在手动茶古剑比特币交易时的代码与对比特币协议的心得,区块链大本营编译如下。 近期,媒体行业对比特...阅读全文

博文 2019-09-12 17:02:42 链客

golang[40]-区块链-wif倒推出私钥

wif倒推出私钥参考资料https://en.bitcoin.it/wiki/Private_keyhttps://en.bitcoin.it/wiki/Wallet_import_formathttp://gobittest.appspot.com/PrivateKey本文链接: https://dreamerjonson.com/2018/12/09/golang-40-blockchain-verifyprivatekeywif/版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处...阅读全文

博文 2019-02-21 15:35:55 jonson_jackson

golang中crypto/elliptic包

elliptic包实现了几条覆盖素数有限域的标准椭圆曲线。 type Curve type Curve interface { // Params返回椭圆曲线的参数 Params() *CurveParams // IsOnCurve判断一个点是否在椭圆曲线上 IsOnCurve(x, y *big.Int) bool // 返回点(x1,y1)和点(x2,y2)相加的结果 Add(x1, y1, x2, y2 *big.Int) (x, y *big.Int) // 返回2*(x,y),即(x,y)+(x,y) Double(x1, y1 *big.Int) (x, y *big.Int) // k是一个大端在前格式的数字,返回k*(Bx,By) ScalarMult(x1, y1 *bi...阅读全文

博文 2018-12-09 14:34:43 laijh

golang中crypto/ecdsa包

ECDSA和DSA一样也是用于数字签名,同样在go使用上也很类似,RSA、DSA和ECDSA三者的签名的区别,可以移步:https://blog.csdn.net/sszgg2006/article/details/25478269 1、生成公钥、私钥代码 /* 生成公钥和私钥的时候,可以选择以下几种 elliptic.P224() elliptic.P256() elliptic.P384() elliptic.P521() */ // 生成公钥和私钥 privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) if err != nil { log.Fatalln(err) } // 公钥是存在在私钥中的,从私钥中...阅读全文

博文 2018-12-09 13:34:42 laijh

Bytom设计结构解读

一、引文 设计Bytom 数据结构,组合了许多技术点,如 patricia tree,utxo, bvm, account model,protobuf,sql,memcache 等。本文会对一些技术点做以下两点分析。 Bytom 为什么要采用该技术点? Bytom 如何应用该技术点? 最后介绍综合这些技术点如何实现Bytom。 [patricial tree](http://www.allisons.org/ll/AlgDS/Tree/PATRICIA/) 二、为什么要采用PAT树? •PAT树具有[基数树](https://en.wikipedia.org/wiki... 的特点,内容可快速追踪。 •PAT树具有[merkle树](https://en.wikipedia.org/wik...阅读全文

博文 2018-07-26 16:34:56 比原链Bytom

区块链教程Fabric1.0源代码分析Orderer localconfig

区块链教程Fabric1.0源代码分析Orderer localconfig,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。 Fabric 1.0源代码笔记 之 Orderer #localconfig(Orderer配置文件定义) 1、配置文件定义 General: #通用配置 LedgerType: file #账本类型,包括ram、json和file,其中ram保存在内存中,生产环境推荐使用file ListenAddress: 127.0.0.1 #服务绑定的监听地址 ListenPort: 7050 #服务绑定的监听端口 TLS: #启用TLS时的相...阅读全文

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

etcd+jwt实现鉴权

本文基于搭建好etcd集群,若为搭建请移步:https://www.jianshu.com/p/ec0e4911236d etcd我们使用其存储key/value的功能,存储jwt的私有key,也可以通过etcd来更新key。 设计思路: 内部服务通过go-micro api相互访问时,为了保证访问的安全,防止来自外部的攻击,我们在服务间通过token来识别。 各服务在请求对方是在header中加入token,token使用jwt生成,jwt 的私有key来自etcd。 为什么这么做 我们使用go-micro api 作为网关 ,使用etcd作为服务发现,此时访问各服务的出入口在go-micro api,其对外的地址和端口是固定的,若我们不做防护,来自外部的访问,就可以直接访问到我们内部的服...阅读全文

博文 2020-06-02 17:32:50 技术修仙

golang之JWT实现

什么是JSON Web Token? JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON方式安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。 直白的讲jwt就是一种用户认证(区别于session、cookie)的解决方案。 出现的背景 众所周知,在jwt出现之前,我们已经有session、cookie来解决用户登录等认证问题,为什么还要jwt呢? 这里我们先了解一下session,cookie。 session 熟悉session运行机制的同学都知道,用户的session数据以file或缓存(redis、me...阅读全文

博文 2020-05-31 00:32:47 guyan0319

golang[39]-区块链-产生wif私钥

压缩公钥公钥一般来说是椭圆曲线上的x,y坐标拼接在一起的。压缩的公钥其实就是x的坐标。WIF 私钥产生12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182package mainimport ("encoding/hex""crypto/sha256""math/big""fmt")//base58编码var b58Alphabet = []byte("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghij...阅读全文

博文 2018-12-14 00:35:43 jonson_jackson

golang[40]-区块链-wif倒推出私钥

wif倒推出私钥123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150...阅读全文

博文 2018-12-14 00:35:43 jonson_jackson

兄弟连区块链入门教程以太坊源码分析p2p-rlpx节点之间的加密链路二

兄弟连区块链入门教程以太坊源码分析p2p-rlpx节点之间的加密链路二 // Sign known message: static-shared-secret ^ nonce // 这个地方应该是直接使用了静态的共享秘密。 使用自己的私钥和对方的公钥生成的一个共享秘密。 token, err = h.staticSharedSecret(prv) if err != nil { return nil, err } //这里我理解用共享秘密来加密这个initNonce。 signed := xor(token, h.initNonce) // 使用随机的私钥来加密这个信息。 signature, err := crypto.Sign(signed, h.randomPrivKey.Export...阅读全文

博文 2018-10-25 17:34:42 兄弟连区块链培训

Bytom交易说明(UTXO用户自己管理模式)

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 该部分主要针对用户自己管理私钥和地址,并通过utxo来构建和发送交易。 1.创建私钥和公钥 2.根据公钥创建接收对象 3.找到可花费的utxo 4.通过utxo构造交易 5.组合交易的input和output构成交易模板 6.对构造的交易进行签名 7.提交交易上链 注意事项: 以下步骤以及功能改造仅供参考,具体代码实现需要用户根据实际情况进行调试,具体可以参考单元测试案例代码blockchain/txbuilder/txbuilder_test.go#L255 1.创建私钥和公钥 该部分功能可以参考代码crypto/...阅读全文

博文 2018-08-28 11:35:16 比原链Bytom

兄弟连区块链教程eth源码分析node包建立多重协议eth节点

node包建立多重协议eth节点 node包建立多重协议以太坊节点 一个node是一组服务,通过共享资源提供RPC API。Services提供devp2p协议,当node实例开始运行,服务被wire到devp2p网络 Node管理资源 Node实例使用到的所有文件系统资源被放到data目录中。每个资源的路径可以通过额外的node配置改写。data目录是可选的。==如果没有设置或资源路径没有指定,node包会在内存中创建资源。== 配置Node并开启p2p服务,来访问devp2p网络。每个devp2p网络上的host有一个唯一标识符,node key.在重启过程中,Node实例维持这个key。Node加载static的和trusted可信的节点列表,保证关于其他hosts的知识持久化。 JS...阅读全文

博文 2018-10-19 10:34:39 兄弟连区块链培训

加密货币的本质

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 去年,比特币暴涨,其他币也像雨后春笋一样冒出来,已经有1000多种了。 很多人都在问,加密货币(cryptocurrency)的时代,真的来临了吗?将来会不会人类不再使用美元、人民币,改用加密货币?那么多品种,我应该使用哪一种币?要不要现在就去投资一些? 这些问题的答案,我也想知道,就花了很多时间查阅资料、研究协议。前两周发表的《区块链入门教程》和《比特币入门教程》,是我的学习心得。但是,那两篇教程主要介绍基本概念、探讨协议的可行性,没回答一个根本的问题:加密货币到底是什么? 下面就是我对这个问题的思考。阅读之前,如果你已经了解区块链和比特币,那很好;如果不了解,也没关系,本文不涉及技术,只讨论最基本的原理。 一...阅读全文

Bytom交易说明(账户管理模式)

该部分主要针对用户使用bytom自带的账户模式发送交易 1、构建交易 API接口 build-transaction,代码api/transact.go#L120 以标准的非BTM资产转账交易为例,资产ID为全F表示BTM资产,在该示例中BTM资产仅作为手续费,该交易表示花费99个特定的资产到指定地址中。其中构建交易的输入请求json格式如下: { "base_transaction": null, "actions": [ { "account_id": "0ER7MEFGG0A02", "amount": 20000000, "asset_id": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "t...阅读全文

博文 2018-08-22 10:35:01 比原链Bytom

密码学家的工具箱(golang代码实现)

本文参考《图解密码技术》第三版    密码学家的工具箱,指六种常用加密方式包括 对称密码、非对称密码、单向散列函数、消息认证码、数字签名、伪随机数生成器。堪称六大杀器,现代社会的信息安全皆基于此。本文用go语言代码实现六种工具的具体应用。 对称密码 是指加密解密时用同一个秘钥,下面代码采用AES进行加解密,私钥长度只支持128,192,256位的字节数组。 AES加解密的代码应用: package main import ( "bytes" "crypto/aes" "crypto/cipher" "fmt" ) func PKCS5Padding(ciphertext []byte, blockSize int) []byte { padding := blockSize - len(ci...阅读全文

区块链教程区块链信息安全3椭圆曲线加解密及签名算法的技术原理二

兄弟连区块链教程区块链信息安全3椭圆曲线加解密及签名算法的技术原理二。 # 椭圆曲线加解密及签名算法的技术原理及其Go语言实现 ### 椭圆曲线加解密算法原理 建立基于椭圆曲线的加密机制,需要找到类似RSA质因子分解或其他求离散对数这样的难题。 而椭圆曲线上的已知G和xG求x,是非常困难的,此即为椭圆曲线上的的离散对数问题。 此处x即为私钥,xG即为公钥。 椭圆曲线加密算法原理如下: 设私钥、公钥分别为k、K,即K = kG,其中G为G点。 公钥加密: 选择随机数r,将消息M生成密文C,该密文是一个点对,即: C = {rG, M+rK},其中K为公钥 私钥解密: M + rK - k(rG) = M + r(kG) - k(rG) = M 其中k、K分别为私钥、公钥。 ### 椭圆曲线签名...阅读全文

博文 2018-11-09 14:17:07 ITXDL

debian安装x2go

1-debian安装xfce桌面sudo apt-get install xfce42-添加GPG Keysgpg: 从公钥服务器接收失败:No namesudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 --recv E1F958385BFE2B6E参考:https://www.jianshu.com/p/7f04a44486343-添加实际的Repositorysudo vim /etc/apt/sources.list.d/x2go.list # X2Go Repository (release builds) deb http://packages.x2go.org/debian buster ...阅读全文

博文 2020-02-03 16:33:13 dlhlSC

使用Java SDK实现离线签名

严格来说,tx-signer并不属于SDK,它是bytomd中构建交易、对交易签名两大模块的java实现版。因此,若想用tx-signer对交易进行离线签名,需要由你在本地保管好自己的私钥。 如果你的目的是完全脱离于bytomd全节点,可能需要自己做更多额外的工作。比如,在构建交易时,需要花费若干个utxo(Unspent Transaction Output)作为交易的输入,如果没有全节点则需要自身来维护utxo。当使用tx-signer构建完成一笔交易并签名后,若没有全节点的帮助,也需要自己实现P2P网络协议将交易广播到其他节点。 本文不会对以上技术细节进行讨论,而是利用bytomd全节点查询可用的utxo构建交易,对交易进行签名并序列化后,同样使用bytomd提交交易。 准备工作 将M...阅读全文

博文 2019-03-27 16:34:47 比原链Bytom

golang[39]-区块链-产生wif私钥

压缩公钥公钥一般来说是椭圆曲线上的x,y坐标拼接在一起的。压缩的公钥其实就是x的坐标。WIF 私钥产生本文链接: https://dreamerjonson.com/2018/12/09/golang-39-blockchain-generateprivatekeywif/版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处...阅读全文

博文 2019-02-21 15:35:55 jonson_jackson

2020 区块链 golang 版本(3)

封面 学区块链会不会过时 我们通过比特币了解到区块链,所以大家认为比特币的兴衰就代表区块链发展趋势,其实比特币只不过是区块链的一个最佳实践罢了。现在还是处于区块链的起步阶段。而且区块链无论在应用上还是技术上都还有广泛的空间。随着比特币出现之后以太坊的出现有推动了区块链的发展。 我们都知道在比特币中涵盖多种技术,今天我们就来谈一谈比特币的几个关键技术 密码学 比特币被称为加密货币,虽然所是加密货币,但是其实比特币的交易会会在全网广播。比特币中主要应用了密码学中的哈希和签名。 哈希运算 我们先说哈希运算,因为输入空间远远大于输出空间,所以不同值经过哈希运算得到哈希值相同是难免的。哈希值取值可能为 ,但是输入是无限空间,不同值经过哈希运算得到相同哈希值的现象叫做哈希碰撞。但是没有方法可以认为制造出...阅读全文

博文 2020-04-25 01:32:52 zidea

剥开比原看代码04:如何连上一个比原节点

作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 在上一篇我们已经知道了比原是如何监听节点的p2p端口,本篇就要继续在上篇中提到的问题:我们如何成功的连接上比原的节点,并且通过身份验证,以便后续继续交换数据? 在上一篇中,我们的比原节点是以solonet这个chain_id启动的,它监听的是46658端口。我们可以使用telnet连上它: $ telnet localhost 46658 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ט�S��%�z...阅读全文

博文 2018-07-23 15:34:49 比原链Bytom