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

使用布隆过滤器判断key是否存在?「建议收藏」

一、前言 今天跟一个同事聊了一个问题,说最近在做推荐,如何判断用户是否看过这个片段呢?想了一下,正好可以使用布隆过滤器完成这个需求。 布隆,可不是LOL的布隆。...布隆过滤器是一个高空间利用率的概率性数据结构,由Burton Bloom于1970年提出,用于测试一个元素是否在集合中。...查询 查询元素时,仍通过k个Hash函数得到对应的k个位,判断目标位置是否为1,若目标位置全为1则认为该元素在布隆过滤器内,否则认为该元素不存在,下图展示了在布隆过滤器中查询Y1和Y2是否存在的过程。...secondIndex = func2(item); array[firstIndex % size] = 1; array[secondIndex % size] = 1; } /** * 判断数据 item 是否存在集合中...float)mightContainNumber2 / 5000000)); } } 结果: 从结果可以看到,从500万的数据中判断一个key是否存在时间还是很快的,而且我们知道, String key

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

VBScript详解(一)

在申明变量时,要显式地申明一个变量,需要使用关键字Dim告诉VBScript你要创建一个变量,并将变量名称跟在其后。申明多个同类型变量,可以用逗号分隔。...用户可以使用Vbs定义变量、过程和函数,vbs也提供了一些内部函数和对象,但是Vbs没有提供任何命令来访问Windows系统内部的部件,但是Vbs虽然不能自己完成这些任务,但是它提供了一条极为方便、功能也相当强的命令...◎Vbs脚本编程简明教程之五—错误处理 引发错误的原因有很多,例如用户输入了错误类型的值,或者脚本找不到必需的文件、目录或者驱动器,我们可以使用循环技术来处理错误,但是VBS本身也提供了一些基本技术进行错误的检测和处理...CreateFolder:创建文件夹 CreateTextFile:创建文本并返回一个TextStream对象 DeleteFile:删除文件 DeleteFolder:删除文件夹及其中所有内容 DriveExits:确定驱动器是否存在...FileExits:确定一个文件是否存在 FolderExists:确定某文件夹是否存在 GetAbsolutePathName:返回一个文件夹或文件的绝对路径 GetBaseName:返回一个文件或文件夹的基本路径

2.9K20

钓鱼引发的APT攻击回溯 | C&C服务器位于韩国,whois注册却在中国上海

VBScript base 64解码代码 在多层循环解码base 64编码后,结果很明显的:附加于Word附件文档,隐藏在VBScript文件中,存在一个长且危险的脚本,随时可由Powershell执行...复制、粘贴 Powersploit/CodeExecution PoC 运行Powershell命令的VBScript存在一处代码,该代码就是基于臭名昭著的恶意软件Powershell PowerSploit...Shellcode 分析 但是让我们来看看Shellcode,因为现在最重要的任务是对它进行逆向分析,并且明白它的使用的主要目的是什么,为什么注入计算机受害者,采用哪些技术和机制做什么,连接在哪里?...最后,我们可以确定,它就是臭名昭着的Poison Ivy。...图8.对 Poison Ivy 恶意软件的C&C服务器WHOIS 结论 这个APT攻击使用了多种变体,它先是欺骗受害者下载一个恶意VBScript,让这个VBScript去下载一个.doc文件并打开它。

1.9K90

【Java】Sleep和Wait的区别

使用场景 sleep通常用于以下场景: 定期执行任务:例如,定时任务调度器可能会使用sleep在每次任务执行后暂停一段时间。...控制程序执行速度:在某些情况下,程序员可能希望减慢程序的执行速度,这时可以使用sleep让程序暂停一段时间。...错误处理使用sleep和wait时,程序员还需要考虑错误处理机制。例如,在调用sleep函数时,如果指定的时间无效或发生其他错误,操作系统通常会返回一个错误码。...程序员需要检查这个状态码以确定是否存在错误或异常情况。此外,在使用wait时,还需要注意处理子进程的退出状态和资源回收等问题。 总结 sleep和wait是操作系统和程序设计中两个重要的概念。...它们各自具有独特的功能和用途,并且在使用场景、实现方式、性能影响和错误处理等方面也存在差异。了解这些区别对于编写高效和稳定的程序至关重要。

7910

如何做好软件安全测试?

例如,对软件运行时的内存信息进行扫描,看是否存在一些导致隐患的信息,当然这需要专门的工具进行验证,手工做是比较困难的。...精确定义设计空间。重点审查需求中对设计空间是否有明确定义,和需求牵涉到的数据是否都标识出了它的合法取值范围。在这个步骤中,最需要注意的是精确二字,要严格按照安全性原则对设计空间做精确的定义。...如果错误处理时调用了一些不该有的功能,那么错误处理的过程将被利用。错误处理属于异常空间内的处理问题,异常空间内的处理要尽量简单,使用这条原则设计可以避免这个问题。...进行安全性测试时必须测试应用程序是否使用了过大的权限,重点要分析在各种情况下应该有的权限,然后检查实际中是否超出了给定的权限。...例如,使用一些能够模拟各种攻击的软件进行测试。 安全测试是用来验证集成在软件内的保护机制是否能够在实际中保护系统免受非法的侵入。

4.3K71

kettle相关知识

确定每个抽取的数据是否是有效的,是否是没有缺陷的,是否需要补充内容等; 数据转换规则,即源数据怎样转化成需要的数据的,经过什么样的计算、拆分、合并等等;本数据转换完后,需要触发哪些数据的ETL过程;...用户通过图形界面创建的的数据库连接和数据转换任务可以保存在资源库中。 资源库可以是各种常见的数据库,用户通过用户名/密码来访问资源库中的资源,默认的用户名/密码是admin/admin。...资源库并不是必须的,如果没有资源库,用户还可以把转换任务存在 xml 文件中。 资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文件夹名称。...任务 Kettle以任务的方式存在,每个任务就是一个转换流程,以流程图的方式表现,支持各种流程处理模式,包括条件跳转、分支、循环等等,每一个节点就是业务处理单元。...主要功能有数据校验、数据转换规则、数据质量检查、Bug调试错误处理,定时功能、日志跟踪等。

1.4K40

Active APT

在调查恶意活动时,我们很少看到使用 Outlook 宏传递恶意软件。...此恶意代码包以 VBScript 开始,如果 Outlook 进程正在运行,该脚本首先会杀死它,然后通过更改注册表值消除 Outlook 中 VBA 宏执行的安全性。...Office 宏注入模块 – CodeBuilder 我们分析了 Gamaredon 小组使用的恶意模块的不同变体,用于将恶意宏或远程模板注入已存在于受感染系统上的文档中。...它将生成的可执行文件放在现有目录中,并创建一个计划任务,该任务将每 10 分钟启动一次。从图 6 中可以看出,解码后的源代码中仍然有注释,说明 Gamaredon 的运算符明显草率。...在持久性方面,使用了几种不同的技术,但最常见的是计划任务、自动运行注册表项和利用 Startup 文件夹。

7.9K00

UFT(QTP)-总结点与自动化测试框架

3.53、添加Action的输入参数 3.54、运行过程中设置判断一个对象存在的最大时间 3.55、在测试步骤中绑定环境变量值 3.56、自动识别和完成VBScript语法的输入 3.57、把屏幕截图保存到指定文件...3.58、单步调试三种区别 3.59、定位并激活对话框 3.60、获取控件窗口的标题 3.61、检查点 3.62、检查结果写入测试报告中 3.63、判断控件是否存在 3.64、QTP对记事本的操作 4...它使用Visual Basic Scripting Edition(VBScript)脚本语言指定一个测试过程,并操纵被测试应用程序的对象和控件。...3.53、添加Action的输入参数 3.54、运行过程中设置判断一个对象存在的最大时间 3.55、在测试步骤中绑定环境变量值 3.56、自动识别和完成VBScript语法的输入 3.57、...micFail为失败的 micPass为通过的 micWarning为警告的 Reporter.ReportEvent micPass,"ChecktextBox1 = Pass","被激活" 3.63、判断控件是否存在

3.1K20

MSIDump:一款功能强大的恶意MSI安装包安全分析工具

关于MSIDump  MSIDump是一款功能强大的恶意MSI安装包安全分析工具,该工具还支持提取文件、数据流、二进制数据,并结合YARA扫描器执行安全分析任务。...在启用了宏的Office文档上,我们可以快速使用oletools mraptor工具判断哪一个文档是恶意文档。...功能介绍  1、快速确定目标文件是否可疑; 2、可疑枚举所有MSI表并转储特定记录; 3、支持从CAB提取二进制数据和所有文件,以及从CustomActions提取脚本; 4、使用YARA规则扫描所有内部数据和记录...; 5、使用file/MIME类型推导确定内部数据类型;  工具下载  由于该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。...接下来,我们可以通过只提取该记录仔细分析这个VBScript。我们从分类表中看到,它出现在Binary表中。

79420

Excel编程周末速成班第26课:处理运行时错误

可以使用OnError Goto语句捕获错误。语法为: On Error Goto label label是程序标签(名称后跟冒号),用于标识错误处理代码的位置。...错误处理代码 错误处理代码的任务是 1.识别错误(使用Err对象)。 2.采取适当的操作,例如向用户显示消息。 3.恢复程序执行。 为了识别错误,你必须对在此特定过程中可能发生的错误有所了解。...你的代码可以使用此信息确定是否发生错误,以及发生错误采取的操作。你将按照以下方式构造代码: On Error Resume Next ‘这里放置可能导致错误的代码....注意:当On Error ResumeNext生效时,你不能使用任何Resume语句响应错误。仅在与OnError Goto语句关联的错误处理程序中才允许使用Resume语句。...2.说明是否所有可能的错误原因都在程序员的控制之下。 3.是否可以在一个过程中放置OnError Goto label语句,并在另一个过程中放置错误处理代码?

6.7K30

Vbs脚本编程简明教程

在申明变量时,要显式地申明一个变量,需要使用关键字DIm告诉VBScript你要创建一个变量,并将变量名称跟在其后。申明多个同类型变量,可以用逗号分隔。...注意:VBScript中不允许在申明变量的时候同时给变量赋值。但是允许在一行代码内同时对两个变量进行赋值,中间用冒号分隔。 3、你可以使用OptionExplicit告诉宿主变量必须先声明后使用。...CreateFolder:创建文件夹 CreateTextFile:创建文本并返回一个TextStream对象 DeleteFile:删除文件 DeleteFolder:删除文件夹及其中所有内容 DriveExits:确定驱动器是否存在...FileExits:确定一个文件是否存在 FolderExists:确定某文件夹是否存在 GetAbsolutePathName:返回一个文件夹或文件的绝对路径 GetBaseName:返回一个文件或文件夹的基本路径...如果要释放的话也很简单,set fs=nothing 2、使用文件夹 在创建前,[作者:临汾市外事旅游局薛靖澜,转载请注明出处]我们一般需要检查该文件夹是否存在例如: dim fs,s //定义

9.6K52

课外阅读之ASP+access

=”输出内容”%>,注意使用&可以连接字符串 3、在页面嵌套脚本语言 默认的是VBScript,所以可以直接使用。...,但是javascript就对大小写区分 4、记录用户状态 一种是记录单用户的是session,一种是记录多用户的application 5、调用子程序 这里解释下为何在head写函数,是因为在函数使用之前确定函数已经加载...当从一个用 JavaScript 编写的 ASP 文件中调用 VBScript 或者 JavaScript 子程序时,必须在子程序名后使用括号。...连接数据库是多用户的,可以用这个) 比如你可以把连接数据库信息存在这里,操作数据库的时候可以锁定,然后其他人就不能同时操作,操作完毕就可以解锁(具体等到例子中再做详细分析,这里不多叙述) 10、调用文件...使用#include指令可以将文件调用到当前执行页面,这样就可以将经常使用的代码或者函数写在一个文件里面,需要的时候用#include调用即可 例子:<!

1.7K70

bat脚本执行命令_实用bat代码

,但会询问是否确认删除[Y/N] rd /s e:\test9 ::自定义删除提示信息 echo 是否删除[Y/N]: & rd /s e:\test9>nul ::/s/q联合使用,不会询问直接删除...rd /s/q e:\test9 19、move命令移动文件(夹) @echo off ::文件夹移动,如果test文件夹存在,则将test5文件夹移动到test文件夹下 ::如果test文件夹不存在...) ::多行显示文本可在文本中使用vbCrLf或vbNewLine set msg="多行显示vbCrLf这是第二行vbNewLine这是第三行" mshta vbscript:msgbox(Replace...(window.close)","vbs") mshta vbscript:msgbox("弹窗单行显示内容",65,"弹窗的标题")(window.close) mshta vbscript:CreateObject...&pause>nul &exit /b 123 特别注意的问题 脚本请使用ANSI编码 很多操作需要管理员权限,所以注意使用管理员权限执行脚本 if语句一次性加载真的很恶心,变量赋值注意延迟加载 字符串中避免使用特殊字符小括号

10.4K20

null 和 undefined

JavaScript的数据类型分成原始类型(primitive)和合成类型(complex)两大类,Brendan Eich觉得表示”无”的值最好不是对象;其次,JavaScript的最初版本没有包括错误处理机制...4、if (isNull(abc)) // VBScript 中有 IsNull 这个函数,但 JavaScript 中没有。 正确的用法: 1、if (!...abc) 判断就可以了,因为 DOM 应用中,可能返回 null,可能返回 undefined,如果具体判断 null 还是 undefined 会使程序过于复杂。 三....测试对象是否存在: 在 JavaScript 中,null 用于对象, undefined 用于变量,属性和方法。 对象只有被定义才有可能为 null,否则为 undefined。...因此,如果我们想测试对象是否存在,必须先检测对象是否已定义。 因此,这是错误的: if (abc !== null && typeof abc !

1.7K40

The RavenClaw dialog management framework 论文阅读

可重用的、独立于域的对话引擎通过执行给定的对话任务规范管理对话。...在执行阶段,任务树中的对话代理放置在对话堆栈上并从中执行,从而在进程中生成系统行为。在输入阶段,系统使用期望议程将当前用户输入的信息传输到对话框任务树。下面,我们将更详细地描述这两个阶段。...接下来,对话框引擎调用错误处理决策过程。在这一步中,错误处理决策过程(我们将在第4.3节中更详细地描述)收集有关对话框进行得如何的证据,并决定是否触发错误处理操作。...由于RoomLine和登录都尚未完成,对话框引擎通过调用错误处理决策过程继续。在这种情况下不采取错误处理操作。2接下来,对话框引擎检查焦点声明,但此时不存在焦点声明。...这些策略是使用前面描述的RavenClaw对话框任务规范形式主义编写的,它们可用作库对话框代理。系统作者只需指定对话管理器应该使用哪些策略,并相应地配置它们。

68020
领券