• 记go语言椭圆曲线算法公私钥验证补充


    我们都知道除了用系统函数读取公私钥的方式还有一种方式,可以让用户手动输入公私钥文件,那么公私钥文件是这样的:

    我们在输入的时候一般都是 var str string 然后按照string格式进行输入,那么这种文件里的格式应该怎么输入呢?

    我们通过分析加解密的源码,知道就是系统根据开头的-----BEGIN CERTIFICATE-----和结尾的-----END CERTIFICATE-----来进行解析,所以我们用户直接输入中间的内容即可,然后开头和结尾用两个定义好的字符串去拼接,那么用户只需要输入中间的内容即可,私钥同理,这里中间的内容可以直接不用换行符\n连接直接就拼接在一起就行,实例:(注意!一定不要加\n,否则会报错)

    如文件为:

    1. -----BEGIN CERTIFICATE-----
    2. MIICKDCCAc+gAwIBAgIRAK5y
    3. MAkGA1UEBhMCVVMxEzARBgNV
    4. cmFuY2lzY28xGTAXBgNVBAoT
    5. -----END CERTIFICATE-----

     那么用户只需要输入:MIICKDCCAc+gAwIBAgIRAK5yMAkGA1UEBhMCVVMxEzARBgNVcmFuY2lzY28xGTAXBgNVBAoT 即可,也就是连接在一起!

    go代码示例:

    参数输入:

    结果:

    椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程 y2+a1xy+a3y=x3+a2x2+a4x+a6 所确定的平面曲线。若F是一个域,ai ∈F,i=1,2,…,6。满足式1的数偶(x,y)称为F域上的椭圆曲线E的点。F域可以是有理数域,还可以是有限域GF(Pr)。椭圆曲线通常用E表示。除了曲线E的所有点外,尚需加上一个叫做无穷远点的特殊点O。

    区块链,就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持。如果要修改区块链中的信息,必须征得半数以上节点的同意并修改所有节点中的信息,而这些节点通常掌握在不同的主体手中,因此篡改区块链中的信息是一件极其困难的事。相比于传统的网络,区块链具有两大核心特点:一是数据难以篡改、二是去中心化。基于这两个特点,区块链所记录的信息更加真实可靠,可以帮助解决人们互不信任的问题。

    2008年由中本聪第一次提出了区块链的概念   ,在随后的几年中,区块链成为了电子货币比特币的核心组成部分:作为所有交易的公共账簿。通过利用点对点网络分布式时间戳服务器,区块链数据库能够进行自主管理。为比特币而发明的区块链使它成为第一个解决重复消费问题的数字货币。比特币的设计已经成为其他应用程序的灵感来源。

    2014年,"区块链2.0”成为一个关于去中心化区块链数据库的术语。对这个第二代可编程区块链,经济学家们认为它是一种编程语言,可以允许用户写出更精密和智能的协议  。因此,当利润达到一定程度的时候,就能够从完成的货运订单或者共享证书的分红中获得收益。区块链2.0技术跳过了交易和“价值交换中担任金钱和信息仲裁的中介机构”。它们被用来使人们远离全球化经济,使隐私得到保护,使人们“将掌握的信息兑换成货币”,并且有能力保证知识产权的所有者得到收益。第二代区块链技术使存储个人的“永久数字ID和形象”成为可能,并且对“潜在的社会财富分配”不平等提供解决方案  。

  • 相关阅读:
    基于蒲公英优化算法的函数寻优算法
    自定义filter与interceptor
    Android stdio的Gradle菜单栏无内容问题的解决方法
    数据库的功能模块图怎么画,就以我图所示
    Sentinel的简单介绍和使用
    openGauss学习笔记-83 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用内存和存储规划
    VS2022使用体系结构查看类图和根据依赖项产生关系图
    RabbitMQ--基础--5.1--部署--命令
    【一包通刷】晶晨S905L3A/B_完美AI语音线刷包_打开ADB_ROOT权限
    驱动有没有(静态和动态加载)
  • 原文地址:https://blog.csdn.net/lakersssss24/article/details/125512552