在《比特币源码分析之三:交易脚本》文中最后以比特币系统中最简单的交易脚本为例子介绍了比特币的脚本指令系统,其中OP_CHECKSIG指令是该指令系统的核心指令,用于验证交易签名,本文重点介绍一下其原理。
以下示例代码是用Scala写的,不过本文所讲的话题并不仅限于Scala,任何有Future/Promise支持的语言都是适用的。
在做美多商城三方支付业务时,需要连入支付宝支付接口,众所周知,支付宝支付采用了RSA加密签名的安全通信机制,开发者可以通过支付宝的公钥验证消息的来源,同时使用自己的私钥进行信息加密。RSA算法及数字签名机制是服务窗平台与开发者网关安全通信的基础。
我们知道最小哈希签名能够把一篇较大的文档压缩成一个较短的签名并且不影响文档间的Jaccard相似度。很多情况下,我们用最小哈希签名的目的就是为了方便的对文档进行存储,并且对于给定的文档,能在大量的文档中快速的查找相似的文章。现在我们能做到快速的对两篇文章进行相似度比较,但是当总的文档数目比较大的时候,比较所有文档的最小哈希签名仍然是一个非常耗时耗力的事。而我们知道,对于给定的文档而言,文档库中的绝大多数文档其实都没有比较的意义,如果能有一个方法能过滤掉不需要比较的大量文档,那么显然就能加快整个查找的过程。这个思路其实可以称为"Filter and Refine","先过滤,后提纯"。而实现这个的方法,就是LSH(Locality-Sensitive Hashing 局部敏感哈希)。
PKI:PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施,在X509标准中PKI为支持共有密钥管理并且支持认证、加密、完整性、可追究性服务的基础设施。
众所周知,目前微信公众号是最具商业价值的写作平台,这与它优秀的原创保护机制密不可分,如果你想将其他公众号上的文章标为原创,微信会给出类似如下的信息告诉你未通过原创校验逻辑。
第一种方式:混淆策略 混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能,现在混淆策略一般有两种: 对代码的
今天给大家介绍McGill University和Uber AI一起在 NeurIPS 2020发表的一篇关于元学习的论文。该论文针对目前链接预测的方法不能够在多图的情况下有效的传递、利用图中的信息,以及不能从稀疏图中有效的学习这两个问题,提出了一个基于梯度下降的元学习框架——Meta-Graph。实验结果显示,对于多图和稀疏图的情况而言,Meta-Graph相比于现有的模型有更好的效果。
① 扩展函数作用域 : 扩展函数使用需要导入包 , 如果在本包中使用 , 可以默认不导入包 ;
1.密码学中用到的哈希函数被称为cryptographic hash function: 它有两个重要的性质:
2018年6月3日,由中国IT技术社区CSDN和专注以太坊生态建设的领先企业灵钛科技主办,以太坊爱好者社区、柏链道捷、火星财经、金色财经、Unitimes、区块链大本营协办的「2018以太坊技术及应用
消息认证又叫报文认证,是消息的接收者验证消息的真实性和完整性的过程与技术。真实性就是验证消息发送者他是真实的而非假冒的。也就是说假如消息的发送者声称是张三,我们要验证一下这个张三他是否是真的张三,这个又叫做信源鉴别,就是信息的源头鉴别它的真伪。另外还要验证消息的完整性,就是验证消息在传送或者存储过程当中没有被篡改,存放、乱序或者延迟等攻击。这个消息认证是防止主动攻击的重要技术,这个主动攻击主要针对真实性和完整性进行攻击,主要包括假冒,假冒某个合法的实体发送一个消息。另外就是内容修改,对消息的内容进行篡改,包括插入、删除、转换或者修改。还有顺序的修改,对消息的顺序进行修改,因为消息往往可能有多个报文组成,这个时候对消息的顺序进行重新排列,也构成了攻击。即时修改是从时间的角度对消息进行延迟,影响消息的时效性,或者截获了消息之后重新来发送产生重放攻击。
JAVA代码覆盖率工具JaCoCo-原理篇和JAVA代码覆盖率工具JaCoCo-实践篇已经给大家介绍过了,本篇为踩坑篇,这里的话题不是说明JaCoCo有什么问题,而是把过程中遇到的几个棘手问题的解决方法分享给大家,只要细心,放下焦虑的心态,问题都可以解决的。 一、覆盖率踩过的坑 在项目中使用JaCoCo覆盖率的时候,也遇到过各种奇葩的问题,在这里列出来分享下,问题和实际的项目关系密切,希望对有遇到过相似问题的童鞋有所启发。 1.1 覆盖率包在部分手机6.0上安装失败 事情起因:在测试新功能时,用打的覆盖率包
哈希表就是一种以键-值(key-indexed)存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。
API接口的安全性主要是为了保证数据不会被篡改和重复调用,实现方案主要围绕Token、时间戳和Sign三个机制展开设计。
这两个概念不需要了解详细的数学实现,只是了解大致的工作原理即可,相信码农应该都有这个基本功。
数字签名主要有防抵赖和防篡改两种功能:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名,二是能确定消息的完整性。 作为具体实现,发送报文时,发送方用一个哈希函数(例如MD5、SHA-1、SHA-256、SHA-384或SHA-512)从报文文本中生成报文摘要,然后用自己的私钥(由RSA或其他公钥密码体制算法生成,只有发送方本人知道,需保密)对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘
前言 1.数据类型的转换 首先给出上一篇文章中android_media_MediaRecorder.cpp中的android_media_MediaRecorder_start方法: framew
加密哈希的作用是创建一个唯一的指纹或标识,用于表示输入数据。无论输入数据有多大或多小,哈希函数都会生成相同长度的哈希值。这意味着即使输入数据发生微小的改变,生成的哈希值也会完全不同。
JavaScript 是一种动态的类型语言,但这并不意味着要否定类型的使用。我们日常打交道的主要就是字符串、数值、布尔值等。虽然 JavaScript 语言成面上没有相关的集成。不过我们可以使用类型签名生成文档,也可以使用注释帮助我们区分类型。
无论是本地函数,还是从其它模块导入的函数,或者是类上的方法,函数都是任何应用的基本组成部分。它们同样也是值,就和其它值一样,TypeScript 有很多种描述函数如何被调用的方式。接下来,让我们了解如何编写类型去描述函数吧。
密码学是研究如何隐密地传递信息的学科。那怎样才能隐密地传递信息呢?密码学里的答案就是对原文进行加密。主流的加密主要分成两大类:对称加密和非对称加密。
自己做接口开发的时间也算不短了(三年),想写这篇文章其实差不多已经有一年多的时间了。我将从下面的方向来对我所理解的接口设计做个总结:
Golang是一门强类型语言,函数是Golang中的基本构建块之一。在Golang中,函数可以定义返回值、参数、变量和常量等内容,并通过调用来执行特定的任务。本文将全面介绍Golang中函数的定义和调用,包括函数签名、不定长参数、闭包和匿名函数等,同时提供完整的代码示例。
GP TEE规范规定了TEE所需支持的加解密算法标准,一张图表示如下(点击看大图) 密码学博大精深,而且在不断发展研究我们今天只是简要介绍一下,后期会有针对性的详细介绍! 从上图来看,首先普及几个基本
之前介绍过C/C++和Python的相互调用,这一次笔者讲解C/C++和Java的相互调用。Java与C的相互调用需要使用JNI,JNI即Java Native Interface(Java本地接口)。Google提供了NDK(Native Development Kit), NDK包含了一套Android的交叉编译环境和开发库,使用它可以编写C/C++程序后编译成Android环境下使用的动态链接库,Java代码使用JNI规范调用C/C++实现的动态链接库。本文先介绍在命令行下使用JNI,随后介绍在Android Studio中使用JNI。
Ajax的长连接,或者有些人所说的Comet,就是指以XMLHttpRequest的方式连接服务器,连接后服务器并非即时写入相应并返回。服务器会保持连接并等待一个需要通知客户端的事件,该事件发生后马上将数据写入响应,这时候客户端就以相当“实时”的方式接收到事件通知。具体的通信模型,请参考这篇文章:《Comet:基于 HTTP 长连接的“服务器推”技术》,里面已经说得非常详细了,我就不再复述了。
有一个列表,分别包含几下文本行:"01 hadoop", "02 flume", "03 hive", "04 spark"
今天,我们继续「Rust学习笔记」的探索。我们来谈谈关于「Rust学习笔记之泛型、trait 与生命周期」的相关知识点。
Leafo老师基于Moonscript语言开发的WEB框架Lapis,框架中有一段针对CSRF(Cross—Site Request Forgery)的防护代码, 是一种基于围绕时间戳和签名验证的CSRF防护设计,后来Leafo老师还更新了CSRF的处理代吗:
在前文介绍了Monero的一次性地址方案。从方案看来,Monero中的UTXO只有一次性地址,用户地址是产生一次性地址的基础,用户对UTXO的所有权并不能显现地看出来。发送人在每次交易时创建一次性地址来接收UTXO,并将一次性地址的相关私密信息(一次性私钥)秘密地传递给接收人,用以保护接收人隐私。这样,每个UTXO都具有不同的一次性地址,同一用户的不同笔UTXO“收入”都看上去没有联系。但是如果仅仅使用一次性地址,那么只要UTXO被花费出去,那么同一交易连接的输入输出的UTXO之间也可以产生联系,也就是说资金的链路还是没有被打断或者混淆,资金的走向还是清晰可见。
为何把职责分离到单独的类中很重要呢?因为每一个职责都是变化的一个轴线。当需求变化时,该变化会反映为类的职责变化。如果一个类承担了多于一个职责,那么引起它变化原因就会有多个。
项目中用到短信验证功能,看到腾讯云有短信服务,就直接使用了,当然其它公司也会停工短信服务,百度可以找到很多,使用的情况应该大同小异,这里就以腾讯云的短信服务为例,说明一下短信服务的申请和使用。
面对事件处理,我们通常会通过定义某一个通用接口,在该接口中定义方法,然后在框架代码中,调用实现该接口的类实例的方法来实现函数的回调。可能这样来说有些抽象,那我们提供一个具体的情形来实现这一情形。
hash是密码学和平时的程序中经常会用到的一个功能,如果hash算法设计的不好,会产生hash碰撞,甚至产生碰撞攻击。
这篇博文中通过实现对String字符串大小写转换为列来说明C++中函数指针和std::function对象的使用。
区块链钱包作为数字货币世界的入口,它糟糕的体验把大部分人挡在门外,说的就是你:助记词备份(或私钥备份)。现在一个激动人心的签名方案让体验提升一大步,也是博客的主角:门限签名技术及ZenGo钱包。
译为本地接口,是Java与其他语言通信的桥梁。主要用于音视频开发、热修复和插件化、逆向开发,系统源码调用等
以这个孪生网络入门,我想着分成上下两篇,上篇也就是这一篇讲解模型理论、基础知识和孪生网络独特的损失函数;下篇讲解一下如何用代码来复线一个简单的孪生网络。
HTTP客户端可能发送一些协议头来告诉服务端它们已经看过了哪些资源。这在获取网页(使用HTTPGET请求)时非常常见,可以避免发送客户端已经获得的完整数据。然而,相同的协议头可用于所有HTTP方法(POST, PUT, DELETE, 以及其它)。
Crypto++ (CryptoPP) 是一个用于密码学和加密的 C++ 库。它是一个开源项目,提供了大量的密码学算法和功能,包括对称加密、非对称加密、哈希函数、消息认证码 (MAC)、数字签名等。Crypto++ 的目标是提供高性能和可靠的密码学工具,以满足软件开发中对安全性的需求。RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,由三位密码学家Ron Rivest、Adi Shamir和Leonard Adleman于1977年共同提出。RSA算法被广泛应用于信息安全领域,特别是在数字签名和密钥交换等场景中。
在之前的两篇博文分别介绍了常用的hash方法([Data Structure & Algorithm] Hash那点事儿)以及局部敏感hash算法([Algorithm] 局部敏感哈希算法(Locality Sensitive Hashing)),本文介绍的SimHash是一种局部敏感hash,它也是Google公司进行海量网页去重使用的主要算法。
crypto-currency 加密货币,加密货币实际上是不加密的,因为产生的交易在区块链中都是公开的。
FALSE分值:10 来源: iFurySt 难度:易 参与人数:4567人 Get Flag:2144人 答题人数:2157人 解题通过率:99% PHP代码审计 hint:sha1函数你有认真了解过吗?听说也有人用md5碰撞o(╯□╰)o 格式:CTF{} 解题链接: http://ctf5.shiyanbar.com/web/false.php 原题链接:http:/
下面是一个完整的示例,展示如何使用Go-RESTful框架创建一个简单的RESTful API服务。这个示例提供了两个路由:GET /users和POST /users,分别用于获取用户列表和创建一个新用户。用户信息以JSON格式返回给客户端。
python中lxml库是一个十分强大的xml解析库,最近在看《白帽子将web扫描》这本书的时候,里面提供了一种不同于以往的用法,因此在这将这个方法记录下来 传统的lxml库的使用方法类似于下面这样:
我们都知道 Java 支持可变参数的形式定义方法,这种语法糖在某些时候可以简化我们的代码,但是关于可变参数是如何实现的以及其他的更多细节,你真的知道吗?今天阿粉就带你来了解一下。
Java 是一种广泛使用的编程语言,其中一种非常重要的特性是引用数据类型。引用数据类型是一种非基本数据类型,它们存储的是对象的引用而不是对象本身。在本文中,我将介绍Java中的引用数据类型,并给出一些示例来说明它们的使用。
本文重点依赖于 https://go.dev/blog/when-generics 这篇博客,有时间的可以自行阅读。
领取专属 10元无门槛券
手把手带您无忧上云