首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

布隆过滤器:判断一定不存在或者可能存在的算法

布隆过滤器(BloomFilter)是由只存0或1的位数组和多个hash算法, 进行判断数据一定不存在或者可能存在的算法....如果是分布式场景下,可以使用Redis位图替换掉LockFreeBitArray类,即可实现分布式位数组部分逻辑; 也可以在Redis服务端安装RedisBloom插件引用算法; 算法优点 虽然该算法中存在误差...缓存穿透 当key对应的数据在数据源并不存在, 每次针对此key的请求从缓存获取不到, 请求都会到数据源, 从而可能压垮数据源. 这时就可以使用布隆过滤器, 避免缓存穿透. 2....爬虫网址去重 记录每个爬过的网址, 没有爬过的网址一定会被布隆过滤器过滤出来. 可能存在的网址再去数据源查询, 也会降低数据源压力. 3....黑名单 不在黑名单中数据, 会被布隆过滤器过滤出来, 可能存在的数据在去数据源中查询, 降低数据源压力.

1.2K10

Leetcode算法【34在排序数组中查找元素】

在之前ARTS打卡中,我每次都把算法、英文文档、技巧都写在一个文章里,这样对我的帮助是挺大的,但是可能给读者来说,一下子有这么多的输入,还是需要长时间的消化。...Algorithm LeetCode算法 在排序数组中查找元素的第一个和最后一个位置 (https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array...找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。...如果没有遇到数字,说明整个数组都不存在该目标,则直接返回一个找不到数字的结果即可,在这里就是 [-1,-1] 。...,那么说明数组里不存在此元素,直接返回找不到的结果[-1,-1] if (range[0] == -1) { return range; } // 从尾到头遍历

2.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手工找出网站中可能存在的XSS漏洞

    ,单实际传递了一个script标签,此标签也被原样放到了HTML结构当中,结果script标签代码中的代码被触发 3.3 存储型 存储型XSS,顾名思义便是恶意参数被存储起来了,通常存储在后端服务器当中...4.1 思路分析 在知道反射型XSS,是通过URL地址传播的,那么笔者就需要思考那些地方会让URL地址的参数在页面中显示;相信读者都用过一些网站的站内搜索,在站内搜索的位置往往会将搜索的关键词展示在页面当中...,如下图所示 [image] 在列表中只显示标题,所以帖子内容中的payload并没有被执行; 5.3 抓包绕过 现在点击标题,进入帖子详情页面,在详情页笔者发现payload也只触发了一次,而且内容当中的标签被直接显示了出来...,而内容被转,猜测可能是前端做的转义,因此可以通过浏览器的审查工具将数据包拷贝下来; 首先重新打开发帖页面,然后在网页随便一个位置单击鼠标右键->选择审查元素->切换到network标签并勾选Preserve...post请求,从请求中可以看出,这个数据发出去就已经被转义了,如下图 [image] 5.4 编码替换 当确定这个地方存在前端做了转义处理,如果后端没有做处理,笔者就可以绕过它,现在笔者将请求复制出来,

    1.2K20

    xlsx格式的Excel文件也可能存在问题!

    最近,因工作需要,从一个比较早期的系统中导出xlsx格式的数据,然后用PQ进行汇总,结果发现: - 坑!坑!坑!- 汇总的数据比原始数据少了很多!...进一步的问题是,xlsx格式的数据也可能存在读取问题,那该怎么办?...首先,当然不要因此而觉得PQ很差,而对它失去信心,实际上,这种情况只有极少数人在极少数的情况下才会碰到,比如我用PQ这么多年了,才遇到这么一次…… 接下来就是,实际工作中,在做数据处理的时候...- 题外 - 同时借这个问题说个可能是题外的小观点,对于很多习惯用Excel的朋友来说,建议先在Excel中把Power Query和Power Pivot的基础知识先掌握了,再去学Power...因为,在Power BI中,你得到的一个结果是否正确,检测起来并不如在Excel中方便和直观。

    90920

    查找数组中第K大的元素

    注意,也可以考虑使用标准库中的排序函数,然后直接访问第 K 大的元素,但这会引入 O(nlogn) 的排序时间复杂度,因此不如快速选择算法高效。...2.选择子数组(Select Subarray):根据分解步骤中得到的子数组和枢纽元素的位置,确定要继续查找的子数组。...如果 K 大元素的位置在枢纽元素的右侧,那么在右侧的子数组中继续查找;如果在左侧,那么在左侧的子数组中查找。3.递归(Recursion):递归地在所选子数组中查找第 K 大元素。...这个过程会反复进行,直到找到第 K 大元素或确定它在左侧或右侧的子数组中。4.合并(Combine):合并步骤通常不需要执行,因为在递归的过程中,只需继续查找左侧或右侧的子数组中的第 K 大元素。...findKthLargest 函数使用了分治算法,通过递归地在子数组中查找第 K 大元素,直到找到或确定其在左侧或右侧的子数组中。

    18620

    如何抓取页面中可能存在 SQL 注入的链接

    0x02 提取 URL 中带参数的 URL 如果 URL 不带参数,那么我们就无法对其进行检测,任何输入点都有可能存在安全风险,没有输入点,当然也没办法测试了,所以如何从 URL 列表中提取带参数的 URL...在不会写脚本,也不懂正则的情况下,可以使用工具 gf,项目地址: https://github.com/tomnomnom/gf 安装也比较简单,使用的话需要依赖别人写好的配置文件,这里推荐一个项目,有很多写好的配置....gf/ 中: mv Gf-Patterns/* .gf/ 接下来就可以提取可能存在 SQL 注入的链接了,结合之前介绍的工具,命令如下: echo "https://example.com" | gau...,即减少了与目标交互的次数,也能提升测试的效率。...总结 本文主要介绍了三款 go 语言编写的小工具,用来针对目标收集可能存在某些漏洞的 URL 列表,然后在结合漏洞检测工具,有针对性的进行检测,提升工作效率。大家如果有更好的玩法,欢迎讨论。

    2.5K50

    np.isin判断数组元素在另一数组中是否存在

    np.isin用法 np.isin(a,b) 用于判定a中的元素在b中是否出现过,如果出现过返回True,否则返回False,最终结果为一个形状和a一模一样的数组。...但是当参数invert被设置为True时,情况恰好相反,如果a中元素在b中没有出现则返回True,如果出现了则返回False. import numpy as np # 这里使用reshape是为了验证是否对高维数组适用...,返回一个和a形状一样的数组 a=np.array([1,3,7]).reshape(3,1) b=np.arange(9).reshape(3,3) # a 中的元素是否在b中,如果在b中显示True...Np_No_invert=np.isin(a, b, invert=False) print("Np_No_invert\n",Np_No_invert) # a 中的元素是否在b中,如果设置了invert...=True,则情况恰恰相反,即a中元素在b中则返回False Np_invert=np.isin(a, b, invert=True) print("Np_invert\n",Np_invert) #

    2.9K10

    你的 Java 验证码和登录程序中可能也存在这样的漏洞

    还有最近测试的一个sso登录,也存在验证码问题。 之前的测试中也遇到过类似的验证码绕过的漏洞,所以对验证码绕过方法进行一个总结,以及关于登录模块可能会存在的逻辑漏洞进行一个小整理。...而登录模块中可能存在的逻辑漏洞,无非就是用户枚举、任意用户密码重置,当然认证绕过也是逻辑漏洞,这个我们暂且放在验证码里面。...2、增加复杂的图形验证码,且一次性有效 3、限制一天内发送的上限 ---- 用户枚举 在验证用户身份的时候,或判断用户是否已注册时,若验证码处理不当、或错误提醒明确,都可能存在用户枚举。...例4 登录处,输入错误的账号,会提醒用户不存在;错误的密码,会提醒密码不正确。可根据提示,进行用户、密码枚举。...当loginname为不存在的账号时,响应包为“操作失败”,而且请求包中,仅有loginname这一个参数,可以对其进行用户枚举。 ? ? ?

    2.3K10

    查找某个元素在数组中对应的索引

    1 问题 已知一个数组内元素为 { 19, 28, 37, 46, 50 } 。用户输入一个数据,查找该数据在数组中的索引,并在控制台输出找到的索引值,如果没有查找到,则输出 -1。...2 方法 首先定义一个数组,在键盘录入要查找的数据,用一个变量接收。再定义一个变量,初始值为-1。遍历数组获取数组中的每一个元素。...然后将键盘输入的数据和数组中的每一个元素进行比较,如果值相同就把该值对应的索引赋值给索引变量,并结束循环。最后输8出索引变量。...int dataIndex = getDataIndex(arr,a); if(dataIndex == -1){ System.out.println("您输入的数据在数组中不存在...if(a == arr[i]){ return i; } } return -1; } } 3 结语 针对查找某个元素再数组中对应的索引这个问题

    3.2K10

    快速找出网站中可能存在的XSS漏洞实践(一)

    3.2 反射型 反射型XSS在笔者闹钟的定义是,如果URL地址当中的恶意参数会直接被输出到页面中,导致攻击代码被触发,便称之为反射型XSS,如下图所示 ?...在图中可以看到,此处原本是输入一个名字,单实际传递了一个script标签,此标签也被原样放到了HTML结构当中,结果script标签代码中的代码被触发 3.3 存储型 存储型XSS,顾名思义便是恶意参数被存储起来了...4.1 思路分析 在知道反射型XSS,是通过URL地址传播的,那么笔者就需要思考那些地方会让URL地址的参数在页面中显示;相信读者都用过一些网站的站内搜索,在站内搜索的位置往往会将搜索的关键词展示在页面当中...在列表中只显示标题,所以帖子内容中的payload并没有被执行; 5.3 抓包绕过 现在点击标题,进入帖子详情页面,在详情页笔者发现payload也只触发了一次,而且内容当中的标签被直接显示了出来,如下图...点击发表按钮之后,笔者可以在控制台中找到刚才的post请求,从请求中可以看出,这个数据发出去就已经被转义了,如下图 ?

    1.7K50

    「硬核JS」你的程序中可能存在内存泄漏

    未清理的Console输出 写代码的过程中,肯定避免不了一些输出,在一些小团队中可能项目上线也不清理这些 console,殊不知这些 console 也是隐患,同时也是容易被忽略的,我们之所以在控制台能看到数据输出...,每次点击都将执行 2 次闭包函数并将其执行结果 push 到全局数组 arr 中,由于闭包函数执行结果也是一个函数并且存在对原闭包函数内部数组 test 的引用,所以 arr 数组中每一项元素都使得其引用的闭包内部...test 数组对象无法回收,arr 数组有多少元素,也就代表着我们存在多少次闭包引用,所以此程序点击次数越多,push 的越多,内存消耗越大,页面也会越来越卡。...要知道,这是我们写的一个简单的例子,我们一下子就可以看出问题在哪,但是真实项目中一个点击事件里就可能存在大量操作,而我们只知道点击事件可能导致了内存泄漏,但不知道具体问题是在点击事件的哪一步骤上,更加细粒度的引起原因和位置我们也不知...这一系列也能看出,就是引用了数组、字符串、数字或正则表达式的对象类型 HTMLDivElement、HTMLAnchorElement、DocumentFragment等等这些其实就是你的代码中对元素的引用或者指定的

    1K20

    「硬核JS」你的程序中可能存在内存泄漏

    未清理的Console输出 写代码的过程中,肯定避免不了一些输出,在一些小团队中可能项目上线也不清理这些 console,殊不知这些 console 也是隐患,同时也是容易被忽略的,我们之所以在控制台能看到数据输出...,每次点击都将执行 2 次闭包函数并将其执行结果 push 到全局数组 arr 中,由于闭包函数执行结果也是一个函数并且存在对原闭包函数内部数组 test 的引用,所以 arr 数组中每一项元素都使得其引用的闭包内部...test 数组对象无法回收,arr 数组有多少元素,也就代表着我们存在多少次闭包引用,所以此程序点击次数越多,push 的越多,内存消耗越大,页面也会越来越卡。...要知道,这是我们写的一个简单的例子,我们一下子就可以看出问题在哪,但是真实项目中一个点击事件里就可能存在大量操作,而我们只知道点击事件可能导致了内存泄漏,但不知道具体问题是在点击事件的哪一步骤上,更加细粒度的引起原因和位置我们也不知...这一系列也能看出,就是引用了数组、字符串、数字或正则表达式的对象类型 HTMLDivElement、HTMLAnchorElement、DocumentFragment等等这些其实就是你的代码中对元素的引用或者指定的

    1.3K30

    MongoDB 数组在mongodb 中存在的意义

    在MOGNODB 的文档设计和存储中,存在两个部分 1 嵌套 2 数组,所以如果想设计好一个MONGODB 在理解业务,读写比例,查询方式后,就需要介入到更深层次的理解嵌套的查询方式,嵌套多层后的性能问题...MONGODB 中的数组是属于同类型数据的元素集合,每个数组中的元素代表这个数组中同样属性的不同值,其实我们可以理解为,在一个JSON 中,有行和行列集合的存在,本身JSON可以通过数组的方式,在一个平面里面表达一个列的集合...匹配所有的score中数组的元素,并进行count ,然后进行聚合操作,并通过project进行投射的工作,最终显示出下图的内容,每行score的元素个数。...数组在一部分应用设计中适合进行数据查询,而另外一点就是数组的缺点,就是对数组中的数据进行更新,尤其是高频次,大量的数据更新和数据的添加。 下面就是针对ORACLE 添加在数组中添加一个数据元素。...数组在MONGODB 中存在的意义很大,在很多设计中都可以通过数组的使用降低查询的复杂度和降低建立索引的SIZE。

    4.2K20

    恕我直言你可能真的不会java第9篇-元素的匹配与查找

    在我们对数组或者集合类进行操作的时候,经常会遇到这样的需求,比如: 是否包含某一个“匹配规则”的元素 是否所有的元素都符合某一个“匹配规则” 是否所有元素都不符合某一个“匹配规则” 查找第一个符合“...匹配规则”的元素 查找任意一个符合“匹配规则”的元素 这些需求如果用for循环去写的话,还是比较麻烦的,需要使用到for循环和break!...如果我们不用Stream API实现,查找员工列表中是否包含年龄大于70的员工?...boolean isExistAgeThan10 = employees.stream().allMatch(e -> e.getAge() > 10); 是否不存在小于18岁的员工?...在java8中引入,这样就不用返回null了。 isPresent() 将在 Optional 包含值的时候返回 true , 否则返回 false 。

    68020

    开发中你可能也会遇到的一个坑

    今天讲一个在实际开发过程中踩过的一个坑,或许你也曾遇到过呢。...先说下结论,如果你在使用 int 类型保存数据,请务必要考虑数据的大小是否会超出其最大长度,较大的数据一般建议使用 str 类型存储。...前段时间项目中遇到一个比较诡异的事情,web 端 js 解析接口数据与数据库中的数据不一致。因为项目中使用了 kafka 、redis 等,所以我们第一时间想到的可能就是数据同步的问题。...至此我们基本上把可能存在问题的地方都排查了一遍,甚至把业务代码也过了一遍,也没找到问题。...这个问题其实算不上什么疑难杂症,或者说对经验多一点的同事来说,基本上就是一眼就能看出的问题,惭愧的是自己依然走了不少弯路。 平时开发过程中要注重积累和总结,在关键时刻就能体现其重要性了。

    28530

    网络安全信息收集-url采集工具(msray)查找可能存在sql注入漏洞的站点

    再进行护网行动中我们需要收集很多的站点进行测试,如果通过手动的去判断收集,未免效率太低,影响我们的进度,sql注入这样经典的漏洞,随着行业的发展已经有很多解决的方案了。...及时手动也只是碰运气,其实通过google我们可以找到大把的有漏洞的、几乎无人管理的网站。...今天就介绍一下本文中快速采集的一个思路1:收集可能存在sql注入点的网址工具:msray免费获取地址:https://github.com/super-l/msraymsray会根据关键词采集网络上的收录的相关域名...,同时支持高级语法特性,支持过滤规则,我们可以设置过滤规则采集到小日子,小太阳国家的一些网址利用google的“inurl:” 语法,搜索有特征的url,很容易找到有漏洞的站点的。...iCat=2:使用sqlmap将采集到的数据放到sqlmap里面批量检测,这样就实现了自动化检测了。sqlmap的使用可以参考sqlMap使用技巧。

    1.8K30

    快排查找数组中的第K个最大元素

    合并过程中,若A[p…q]和A[q+1…r]之间有值相同的元素,则可像伪代码中那样,先把A[p…q]中的元素放入tmp数组。这就保证值相同的元素,在合并前后的先后顺序不变。...选择数组区间A[0…n-1]的最后一个元素A[n-1]作为pivot,对数组A[0…n-1]原地分区,这样数组就分成三部分,A[0…p-1]、A[p]、A[p+1…n-1]: K 在A[0…p-1]区间查找...p+1=K,则A[p]就是目标 K>p+1, 则第K大元素在A[p+1…n-1] 再继续同样思路递归查找A[p+1…n-1] 时间复杂度分析 第一次分区查找,需对大小为n的数组执行分区操作,遍历n...第二次分区查找,只需对n/2数组分区,遍历n/2个元素 类推,分区遍历元素的个数分别为、n/2、n/4、n/8、n/16.……直到区间为1。...那我每次取数组中的最小值,将其移动到数组最前,然后在剩下的数组中继续找最小值,以此类推,执行K次,找到的数据不就是第K大元素了吗?

    4.1K10

    清华大学副校长施一公:我的认知再度崩塌了,世界可能根本就不存在

    你们可能知道也可能不知道,短短四个礼拜,胎儿开始有心跳。慢慢地,神经管形成了,脊椎形成了,四肢开始发育,通过细胞凋亡,开始形成手指头。到四五个月的时候,胎儿开始在母亲肚子里踢腾。...第二个问题,有没有可能,两个人会以未知的方式进行交流?你会说也许,不会像第一个问题那样肯定地说不信。第三个问题,量子纠缠是否存在于人类的认知世界里面?存在于大脑里?...其实我们已知的物质的质量在宇宙中只占4%,其余96%的物质的存在形式是我们根本不知道的,我们叫它暗物质和暗能量。 那么盲人摸象般地认识世界是科学吗?一定是科学。...没有任何联系的二个量子,可以如神一般的发生纠缠。把意识放到分子,量子态去分析,意识其实也是一种物质。 既然宇宙中还有95%的我们不知道的物质,那灵魂、鬼都可以存在。...既然量子能纠缠,那第六感、特异功能也可以存在。同时,谁能保证在这些未知的物质中,有一些物质或生灵,它能通过量子纠缠,完全彻底地影响我们的各个状态?于是,神也可以存在。

    1.1K20

    面试算法,在绝对值排序数组中快速查找满足条件的元素配对

    如果不存在这样的元素配对,你返回(-1,-1)。...对于这个题目,我们曾经讨论过当数组元素全是整数时的情况,要找到满足条件的配对(i,j),我们让i从0开始,然后计算m = k - A[i],接着在(i+1, n)这部分元素中,使用折半查找,看看有没有元素正好等于...m,如果在(i+1,n)中存在下标j,满足A[j] == m 那么我们就可以直接返回配对(i,j),这种做法在数组元素全是正数,全是负数,以及是绝对值排序时都成立,只是在绝对值排序的数组中,进行二分查找时...因此在查找满足条件的元素配对时,我们先看看前两种情况是否能查找到满足条件的元素,如果不行,那么我们再依据第三种情况去查找,无论是否存在满足条件的元素配对,我们算法的时间复杂度都是O(n)。...,它先根据两元素都是正数的情况下查找,然后再根据两元素都是负数的情况下查找,如果这两种情况都找不到,再尝试两元素一正一负的情况下查找,如果三种情况都找不到满足条件的元素,那么这样的元素在数组中不存在。

    4.3K10
    领券