脑回路丢包//@3C生活日常:那经常碰到无线升级相对不稳定的原因是?//@千里相思丶守着一颗心:必不可能丢包,你觉得MD5校验是干嘛用的
3C生活日常手机无线(OTA)升级还是下载固件升级好?iOS16.1正式版推送,经常听师傅说,手机无线网络不好的话,手机无线升级丢包的概率大,也会有系统残留,升级完容易出现卡顿,发热。连接电脑进入恢复模式或DFU模式刷机,会更加干净,手机也会更加稳定。不知道大家都选择什么方式升级?真如传闻般连PC刷机更加稳定、干净?@手机无线升级好还是下载固件升级好 #手机# #苹果推送iOS16.1#
相同的文件内容,md5值不一定相同?
看到了一个介绍 harmonyos3.0 超空间压缩的头条

里面说了这么一句“相同文件,MD5不一定一样”,这就不对了
正常情况下,对文件进行MD5计算的时候,是不验证文件名以及文件属性的,只是单纯对文件内容进行计算,根本不会出现相同文件,不同MD5的情况
当然会出现另外一种情况 “不同文件,相同MD5”,王小云教授的研究成果已经证实了这一点
王小云的研究成果如下:
MD5(M1)=MD5(M2)
即给定消息 M1,能够计算获取 M2,使得 M2 产生的散列值与 M1 产生的散列值相同,也就是M1和M2的MD5相同
安卓APP本地防破思路 #网络安全#
首先要说明, 不管用何种加固方案, 都有对应的脱壳方法然后修改代码重新打包, 对此是没有任何办法的. 所以软件混淆要尽量复杂,可以自定义混淆字典,让代码越难看越好.
我的解决方法有两种:
1.是在软件里面埋点, 比如隔一段时间上报软件的签名 sha1,md5 等校验信息, 重新打包之肯定会改变, 然后在服务器冻结这些账号. 上报的代码尽量隐蔽, 上传频率尽量低. 比如在 so 中写几份,java 中写几份

2.远程执行代码, 利用 socket 推送消息,执行相应代码(sha1,md5 等)并上报到指定域名, 这个域名一定不要在软件中写死,容易被发现,写在 socket 消息中, 隔个几天发送一次检测消息,一般人很难发现
Total Commander - Windows资源管理器终结者
TotalCommander是一个功能强大的全能文件管理器,支持随意自定义的菜单、工具栏、快捷键,给您最大的自由.一般的文件操作,如搜索、复制、移动、改名、删除等功能应有尽有,更有文件内容比较、同步文件夹、批量重命名文件、分割合并文件、创建/检查文件校验(MD5/SFV) 等实用功能。
最常用的20个快捷键:
1、shift+D / shift+I / shift+X / shift+W 一键打开desktop,images,download,document文件夹(需新增配置文件)
2、空格 选择/取消此文件
3、ctrl+d 打开收藏夹
4、alt+方向左/右 上/下一个文件夹

5、ctrl+tab / ctrl+shift+tab 上/下个标签
6、ctrl+w 关闭标签
7、ctrl+q 快速预览效果
8、F2 重命名(修改配置文件)
9、F3 使用bridge打开此文件夹 (在菜单中设置)
10、F4 用默认软件打开指定文件(需安装插件,默认sublime)
11、ctrl+shift+F1 切换显示模式(图片显示,列表显示)
12、tab 左右窗口焦点切换
13、ctrl+F5/F6/F3/F4 排序(时间,大小,名称,扩展)
14、alt+方向下 历史记录
15、alt+1 复制文件名+后缀(修改配置文件)
16、alt+2 复制所在文件夹 (修改配置文件)
17、alt+3 只复制文件名(用AHK修改)
18、ctrl+shift+c 复制文件名及完整路径
19、ctrl+a 全选
20、ctrl+- 取消所有选择
Total Commander其它更多的功能,欢迎大家在评论区留言!
从VB/VBA字典(Dictionary)的算法和结构,谈谈其正确的使用方式!

1、Dictionary的查询速度很快,而且初始化后的Dictionary,的确很方便使用,于是开始挖掘其使用场景。有网友甚至将17万行Excel数据全部初始化到Dictionary中,每行新建1个Dictionary实例,所有行再嵌入到1个汇总Dictionary中,然后17万个Dictionary后,不让新建开始报错了。
2、Dictionary通过内嵌Dictionary/Collection对象,的确可以构建出复杂的数据结构,用于应对复杂的数据场景。但像上例那样蛮用,很难体验这货的丝滑。究其原因就在于,没有了解清楚Dictionary本身的一些特性。
3、Dictionary内部是采用怎样的算法,结构又是怎样的,什么场景更适合?官方几乎没有透露相关信息。那么本篇,将简单地给大家介绍介绍,希望以后不要滥用Dictionary。
不难知道Dictionary内部核心就是HashMap,Hash故名思议就是信息摘要,将1个不定长度的信息,通过算法映射为固定长度的整数。Dictionary查询速度很快,其实查询使用的并非Key本身,而是其Hash值。而HashMap的算法,核心就是将这些Hash值再映射为数组的索引,最后通过索引进行查询。

从这里可以看出,Dictionary是构建在数组上的,当有人怀疑数组与Dictionary,谁的性能更好时,那么这里就是结论了。
4、简而言之,将不定长信息映射为1个固定长整数的过程,一般称之为摘要算法(也即Hash算法)。比如CRC系列算法,MD系列算法以及网络广为使用的SHA系列算法等。Hash在计算机世界里有非常广泛的运用,比如文件的网络传输通常使用CRC值校验完整性,资源站(如百度云盘)通常使用MD5值标识文件(有时候从本地上传下载的电影啥的,能达到秒传,其实就是利用MD5检测到服务器已存在相应资源,只是给用户一个索引而已,自然快呀),互联网账号登录(如QQ)通常使用账号密码的Hash值代替帐号密码进行校验来提升安全性等。
但是Hash算法本身就存在1个无法避免的漏洞:无限映射有限,就存在重复的可能,这就是碰撞。Hash算法本身不可逆,因此很多人将其作为密码算法来用,最为值得一提的,便是比特币一类的虚拟电子币。

其实这是很危险的,如果算力允许,最简单的穷举即可破解(找到碰撞子)。将Hash值作为验证手段,是建立在算力匮乏的假设上的,一旦算力得到解放,就会造成千年虫那样的影响。CRC/MD系列就是明证,比如我国的王小云通过特殊的算法设计,能大幅提高MD5等Hash的碰撞。而目前暂露头角的量子计算机,其算力已是目前最牛超算的数百万亿倍,比特币采用的sha256,将很快迎来快速碰撞,重面CRC和MD系列的尴尬。到时,究竟谁会真正拥有比特币呢?互联网终端的肉鸡们?
扯远了,Dictionary中也存在Hash值冲突的情况,也就是相同的Hash值,可能对应好几个Key,这样映射的索引值却只有1个,也即多个Key去查询,返回相同的值,这不就是Bug了嘛。
5、为了解决这一问题,出现了诸多算法,其中链表法就是最常用的。链表法就像拉链一样,将冲突信息首尾串联在一起,整个链共享1个索引,当发生冲突时,就遍历这个链进一步比较信息,直到确认身份为止。制约HashMap(Dictionary)性能的,就在这个地方。

6、为了提高性能,有两个途径。一是设计出1个非常牛逼的Hash算法,对于任意数据样本都满足均匀分布。二是扩大索引范围。很显然,后者更容易,这就是以空间换时间的经典场面。Dictionary也不例外,只不过相对比较折中,平衡了性能和内存开销而已。
7、那么Dictionary究竟开销如何呢?据BtOfficer测算,新建首个空的实例大约消耗120K内存,此后每个新建空实例约占5K。这还没算每个键值对至少消耗的32字节,以及配套的Hash表扩张带来的消耗。所以,想想17万个Dictionary和N个数据对能占多少内存了吧,几乎能耗光用户可用的内存了。
8、综上,Dictionary其实并不适合大规模数据的处理,Dictionary胜在使用方便,符合人的直观,但这些都是有代价的。所以,能用数组,就直接用数组了。虽然VB/VBA中,数组也这样那样,比如前一篇讲的。
欢迎关注[心]BtOfficer[心],我打算将Dictionary周边说完后,来一篇针对Dictionary更深入,也更系统的分析。

“100万年内都无人能破解此密码,即便用世界上最先进的计算机!”美国顶尖科研团队设计出了MD5密码,专用于密码登录、数字签名等方面。没想到却被一位38岁的中国姑娘破解了。而她的破解手段,让美国人大跌眼镜。
这位姑娘就是我国2019年“未来科学大奖”的获奖者——王小云。
王小云1966年出生于山东,从小她就对数学异常感兴趣。
进入大学后,她的数学天赋很快引起了著名数学家、山大校长潘承洞的注意。从未收过女弟子的潘校长,破例收下了王小云。
拜师后,王小云在数学领域混得如鱼得水,然而潘承洞却突然让她改行学密码学。
“为什么?我只想学数学。”王小云拒绝了。
可没想到,潘承洞却异常坚持,直接给王小云报了日本密码学家易松信教授的培训班。
王小云像被赶鸭子上架,她原打算混完40天,就回去继续研究数学,不承想听了易松信教授几节课后,她竟沉迷在了复杂、多变的密码学中。

但遗憾的是,这个课程因易松信教授意外骨折而提前结束了,意犹未尽的王小云直接跑到西电的图书馆,查阅了很多密码学的相关书籍。
最后,她回去时,还把其中一本关于比特安全思想的书复印带了回去,这本书,把密码学的思想植入了她的脑海中,让她从此决定研究密码学。
博士毕业后,为了继续潜心研究密码学,王小云拒绝了多家企业的高薪聘请,选择留校任教。
那时密码学刚在国内兴起,王小云连个探讨的人都没有。每次演算停滞不前时,身边的人总是劝她放弃。
但王小云却从不气馁,怀孕期间,医生禁止她使用电脑,她就直接用简单的纸笔进行推演。
无数次的失败,再重来,最后王小云竟破解了由美国顶尖科研团队设计出来的,当时世界上最安全、应用最广泛、最先进的两大密码之——MD5。
MD5能将任意数字的密码生成128(16字节)的散列值,让人很难反推原始字符,被广泛应用于密码管理、电子签名和操作系统的认证等领域,也是美国最为得意的密码作品之一,宣称100万年内都无人能破解。

2004年8月17日,王小云带着演算结果,参加了在美国加州举行的国际密码学会议。当时她作为新人,最后一个登台发言。
起初,在场的各国密码专家都对她嗤之以鼻,但当她的演算结果公布后,整个会场都沸腾了!
那天注定是个不眠夜,除了王小云,其他参会人员全都在挑灯夜战,他们纷纷在验证王小云的计算是否正确。
次日,王小云的计算结果遭到多名国际密码学家的质疑,但王小云却自信地邀请著名密码学专家比哈姆教授与她同步进行运算。
两人通过一步步倒推,最后证明王小云的计算结果是对的,MD5破解了!这一刻,在场所有人都心服口服,开始争先向她道贺。
MD5的破解,证明了电子签字存在漏洞,美国被迫宣布五年内不再使用MD5,此外,不少人担心,MD5既然被破解了,那与MD5齐名,有“白宫密码”之称的SHA-1,是不是也会失守?

对此,美国公开表态:“MD5虽被破解了,但SHA-1的算法难度更高,且目前还未发现有任何安全隐患,因此大家不用担心!”
然而不到半年,美国就被打脸了。
2005年2月15日,世界公钥加密算法大会上,美国口中没有任何安全隐患的SHA-1再次被王小云破解了,且用时不到三个月!
最厉害的是,MD5和SHA-1这两个密码天花板,大部分是被王小云手算破解的!这破解方式让美国人大跌眼镜,直呼不可思议。
王小云不仅以一己之力改变了世界信息安全格局,还打破了中国在国际密码界的空白,让中国出道即巅峰,走在了世界前列。
面对王小云这匹密码界的黑马,美国等多个国家先后向她抛出了橄榄枝,希望她加入自己的阵营,但都被她拒绝了。
王小云破解世界两大密码,不是为了追名逐利,而是为了积累经验,然后在此基础上设计出更安全,更无懈可击的密码。

2005年,在王小云与国内其他专家的努力下,我国拥有了自己的安全密码——SM3,SM3的安全性更高于MD5和SHA-1,这对我国信息安全具有重大意义。
SM3问世以来,被广泛应用到了我们生活中的各个领域,如银行卡、社交软件等,就连军事科技和航天工程都是它在保驾护航。
2019年,为国家信息安全做出了杰出贡献的王小云,成了“未来科技大奖”的第一位女性获奖者,获得了711万元的奖金!
得到这笔巨款,王小云表示今后的研究经费更宽裕了!
都说良将易求,而忠臣难得,王小云这样的科研人才确实难得,但更难得的是她不为名利,一心为国的赤子之心!
作者:童童
编辑:雪青柠
排版:默默
【参考资料】:《中国“密码女王”两次破解顶级密码,她的研究对国家安全到底有多重要?》.中国妇女网

#头条创作挑战赛# #历史#
Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题。
Sa-Token 功能一览
登录认证 —— 单端登录、多端登录、同端互斥登录、七天内免登录
权限认证 —— 权限认证、角色认证、会话二级认证
Session会话 —— 全端共享Session、单端独享Session、自定义Session
踢人下线 —— 根据账号id踢人下线、根据Token值踢人下线
账号封禁 —— 指定天数封禁、永久封禁、设定解封时间
持久层扩展 —— 可集成Redis、Memcached等专业缓存中间件,重启数据不丢失
分布式会话 —— 提供jwt集成、共享数据中心两种分布式会话方案
微服务网关鉴权 —— 适配Gateway、ShenYu、Zuul等常见网关的路由拦截认证

单点登录 —— 内置三种单点登录模式:无论是否跨域、是否共享Redis,都可以搞定
OAuth2.0认证 —— 基于RFC-6749标准编写,OAuth2.0标准流程的授权认证,支持openid模式
二级认证 —— 在已登录的基础上再次认证,保证安全性
Basic认证 —— 一行代码接入 Http Basic 认证
独立Redis —— 将权限缓存与业务缓存分离
临时Token验证 —— 解决短时间的Token授权问题
模拟他人账号 —— 实时操作任意用户状态数据
临时身份切换 —— 将会话身份临时切换为其它账号
前后台分离 —— APP、小程序等不支持Cookie的终端
同端互斥登录 —— 像QQ一样手机电脑同时在线,但是两个手机上互斥登录
多账号认证体系 —— 比如一个商城项目的user表和admin表分开鉴权
花式token生成 —— 内置六种Token风格,还可:自定义Token生成策略、自定义Token前缀

注解式鉴权 —— 优雅的将鉴权与业务代码分离
路由拦截式鉴权 —— 根据路由拦截鉴权,可适配restful模式
自动续签 —— 提供两种Token过期策略,灵活搭配使用,还可自动续签
会话治理 —— 提供方便灵活的会话查询接口
记住我模式 —— 适配[记住我]模式,重启浏览器免验证
密码加密 —— 提供密码加密模块,可快速MD5、SHA1、SHA256、AES、RSA加密
全局侦听器 —— 在用户登陆、注销、被踢下线等关键性操作时进行一些AOP操作
开箱即用 —— 提供SpringMVC、WebFlux等常见web框架starter集成包,真正的开箱即用
更多功能正在集成中...
代码调用:
StpUtil.login(10001); // 标记当前会话登录的账号id
StpUtil.getLoginId(); // 获取当前会话登录的账号id
StpUtil.isLogin(); // 获取当前会话是否已经登录, 返回true或false

StpUtil.logout(); // 当前会话注销登录
StpUtil.kickout(10001); // 将账号为10001的会话踢下线
StpUtil.hasRole("super-admin"); // 查询当前账号是否含有指定角色标识, 返回true或false
StpUtil.hasPermission("user:add"); // 查询当前账号是否含有指定权限, 返回true或false
StpUtil.getSession(); // 获取当前账号id的Session
StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session
StpUtil.getTokenValueByLoginId(10001); // 获取账号id为10001的token令牌值
StpUtil.login(10001, "PC"); // 指定设备标识登录,常用于“同端互斥登录”
StpUtil.kickout(10001, "PC"); // 指定账号指定设备标识踢下线 (不同端不受影响)
StpUtil.openSafe(120); // 在当前会话开启二级认证,有效期为120秒
StpUtil.checkSafe(); // 校验当前会话是否处于二级认证有效期内,校验失败会抛出异常
StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
项目地址:Sa-Token: 一个轻量级 Java 权限认证框架,让鉴权变得简单、优雅!目前已集成——登录认证、权限认证、分布式S...
#开源项目精选#







