首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

算法图解》开

个人认为,算法基础是程序员甚至是与代码打交道的人的基本能力。而优秀的算法能力则能成为从事编程工作的人的核心竞争力。...因为时间复杂度低的算法使得代码的高效运行成为现实,好比快速排序法相较于冒泡排序法。 严谨的算法能将问题的种种情况都妥善解决,滴水不漏。...贪婪的算法能将问题化整为零,将问题的近似解求出,从而得出平衡成本与收益的答案。 因此,算法是从事代码人员的极为重要的能力。...本人之前一直在读《python算法教程》,但由于外部以及内部的原因,阅读的进度搁置在第六章。为了打好算法的基础,本人参加了一个《算法图解》的共活动 。...因此,本人当前的目标是完成《算法图解》的阅读,之后再继续阅读《python算法教程》。接下来的读书笔记将是关于《算法图解》。

41140

.NET Core 使用RSA算法 加密解密签名验证签名

articleId=106130&docType=1 .NET Core 中的使用 这里要讲一下RSA2算法。 什么是RSA2 ?...RSA2 是在原来SHA1WithRSA签名算法的基础上,新增了支持SHA256WithRSA的签名算法。该算法比SHA1WithRSA有更强的安全能力。...算法名称 标准签名算法名称 备注 RSA2 SHA256WithRSA (强烈推荐使用),强制要求RSA密钥的长度至少为2048 RSA SHA1WithRSA 对RSA密钥的长度不限制,推荐使用2048...位以上 签名的作用:保证数据完整性,机密性和发送方角色的不可抵赖性 这里来一发干货,我已经封装好的RSA/RSA2算法,支持加密/解密/签名/验证签名。...string signStr = rsa.Sign(str); Console.WriteLine("字符串签名:" + signStr); //公钥验证签名 bool

3.7K20

Java TimSort算法 源码 笔记

Arrays类没有什么架构与难点,但Arrays涉及到的两个排序算法似乎很有意思。那顺便把TimSort算法和双指针快速排序也研究一下吧。...首先强调一下,这是个稳定的排序算法 看过代码之后觉得这个算法没有想象的那么难。逻辑很清晰,整个算法最大的特点就是充分利用数组中已经存在顺序。...除了算法本身的魅力,作者的代码写的很简洁。读起来很享受。大家有兴趣可以自己一遍,我在下面贴出我看代码过程中的注释。对逻辑所有的解释都在注释中。...super T> c)两个方法开始, 顺着逻辑一路往下就可以。 除了上面提到的Galloping Mode,还有源码中还有一个概念叫作 run, 可以把它理解为一段已经排好序的数列。...//栈中run的数量 private final int[] runBase; private final int[] runLen; /** * 这个构造方法是私有的所以只能在类内部创建

1.3K20

区块链密码基础之签名算法(二)

签名是一种特殊的数字签名算法,它可以实现在生成数字签名的同时不泄露谁才是真正的签名者,是一种匿名的数字签名技术。...本文将简单介绍环签名的相关内容,如算法原理、安全性要求、环签名分类、在区块链中的应用与不足等。...图4 验证过程 三、 安全性要求 对于一个环签名算法来说,如果它是安全的,则该算法至少满足以下性质: (1)匿名性:给定一个签名,任何人都无法确定环成员中哪一个才是真正的签名者,若环中有n个成员,那么其他人猜中真正签名者的概率不超过...(2)不可伪造性:环中其他成员无法在不使用自己的公私钥对进行合法签名的情况下,伪造出一个可以通过验证算法的有效环签名,非环中成员即使获得某个有效合法的环签名,也无法伪造一个可以通过验证算法的有效环签名。...其环签名算法采用CryptoNote协议[5],将普通可链接环签名算法扩展为多层可链接环签名算法来混淆交易信息。

1.3K10

某新闻App sign签名算法解析(一)

分析某新闻App的通讯协议,RPC调用sign签名。 某新闻App版本 v8.3.0 BlackDex脱壳 frida rpc调用 二、步骤 抓个包先 [main.png] 掰着手指头数了数,32位。...对待MD5的嫌疑人,我们的操作套路是这样的,先搜索 特征字符串,然后再尝试 hook java的md5算法。...大概改改就行 # run.py # 参数是三个,第一个参数是 accont, 第二个参数是token ,第三个参数是时间戳 @app.route('/sign', methods=['GET']) # 数据签名...6af6f31a-c608-4e01-97ad-2cf39cf17cf4','','1644299600595') return res 然后hook.js这么写: // hook.js // 签名...callsignfun : callSignFun }; 最后浏览器里跑一下 http://127.0.0.1:5000/sign [rcex.png] 三、总结 优先搜索特征字符串,其次是特征算法

79540

非对称算法之RSA的签名剖析

前言 数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。 不清楚的请自行科普数字签名。...本篇主要来讲签名值具体是怎么计算出来的~ 一、动手解密签名值 1、测试密钥 //随机产生RSA私钥。因1024位的RSA密钥已不安全,本次测试使用2048长度的RSA密钥。...,对Hash值的数据填充方式 对hash算法id和hash值进行ASN.1的DER编码。...可以看到sha256的算法id,2.16.840.1.101.3.4.2.1: ? 数据也在其中,另附上部分算法id: ? 另因为各个hash算法id是固定的,计算的结果也是固定的。...所以不同的hash算法的填充也是固定的。

1.7K30

区块链密码基础之签名算法(一)

签名算法是区块链的重要技术之一,签名算法同时也是区块链安全的重要研究点之一,区块链的地址,公钥,私钥,钱包管理等都和签名算法相关。...3.1 Schnorr签名算法 图2 Schnorr签名算法过程 3.2 DSA签名算法 DSS(Digital Signature Standard)是由美国NIST 1991年公布的一种签名技术...图3 DSA签名算法过程 四、基于椭圆曲线的签名算法 大部分区块链项目使用的是椭圆曲线算法ECDSA(Elliptic Curve Digital Signature Algorithm),使用椭圆曲线离散对数问题构建的签名算法...4.1 ECDSA算法 图4 ECDSA算法过程 4.2 区块链的签名算法选择 椭圆曲线签名算法只是给出了一种算法,可是椭圆曲线的参数选择是多样的。...五、总结 区块链的签名算法是区块链应用和安全的重要研究方向之一,通过对区块链签名算法的研究,设计适合区块链业务的签名算法,实现更加高效和安全的区块链系统;另外通过对区块链签名算法的分析,为您在区块链签名算法的国密替代提供参考

1.4K10

由浅入深透vue源码:diff算法

本文作者陈碧松解析并覆写了针对数组变化的diff算法逻辑。希望本文对你有帮助。...源码如下: 如果数据为图上所示,那么根据首尾比较方法会有如下图所示结果,最终全部执行了更新操作: 2)索引比较 最坏情况,这里的时间复杂度也是O(n),即整个算法复杂度O(n)+O(n)。...这样,整个diff的对比算法就已经走完了。核心就是:前后对比+索引。...补充一下,flagment碎片类型为新增的vnode类型,即: vue3.0的过滤判断源码如下: 数组比较的应用 由于我们想监听数组的变化,参考了diff算法覆写类似的逻辑,用来在update,add...| 最全Go select底层原理,一文学透高频用法 | 十亿人都在用的健康码,运维体系是怎么设计的 | 详解全网最快Go泛型跳表【内附源码】 技术盲盒:前端|后端|AI与算法|运维|工程师文化 图片

84921

数据结构和算法

前言 程序=数据结构+算法 最近看数据结构方面的知识,整合记录下来,部分文章是转载的,链接贴后面 哈希Hashing 哈希碰撞 哈希能够将任意长度的数据映射到固定长度的数据。...比如上面第一次按照姓首字母进行哈希,如果产生冲突可以按照姓字母首字母第二位进行哈希,再冲突,第三位,直到不冲突为止 开地址法 在开地址法中,当插入新值时,会判断该值对应的哈希桶是否存在,如果存在则根据某种算法依次选择下一个可能的位置...插入算法 首先执行查找算法,找出被插结点的父亲结点。 判断被插结点是其父亲结点的左、右儿子。将被插结点作为叶子结点插入。 若二叉树为空。则首先单独生成根结点。 注意:新插入的结点总是叶子结点。...在二叉排序树上删除一个结点的算法如下: 删除算法 /** *方法名称:delete() *方法描述:删除结点 *@param采用递归的方式进行删除 *@returnString *@Exception...也就是说,最好情况下的算法时间复杂度为O(1),最坏情况下的算法时间复杂度为O(n)。 参考地址 链接: 数据结构与算法(java) 链接: 二叉查找树 - 删除节点 详解

39710
领券