Saturday, June 5, 2021

V2EX - 技术

V2EX - 技术


由一个电子指纹锁想到的,难道指纹锁内部存储密码都是明文?

Posted: 05 Jun 2021 04:07 AM PDT

最近买了一个销量很高的指纹锁装上了(牌子就不说了), 说实话各种体验都挺好。很人性化。很赞,我都想买个蓝牙网关把它的功能都玩一玩。

但是,(对,凡事就怕但是)
其中有个功能,只要你输入密码包含真实密码就能开门,是的这个是用来混淆旁观者的。
例如,你真实密码 123456,你可以输入 1234512333333331111111112345666666666 就能解锁。
对于此,我陷入了人生的大思考,
难道内部程序是吧密码直接明文存储在内存中? 匹配的时候直接

if (INPUTSTRING.contains(realPsw){    openTheDoor () } 

-- 这样不是可能存在漏洞让人通过内存嗅探到密码,当然单人单户可能不值得这么去破解,如果破解这一个型号的锁,应该也是有人做的吧。

如果他是加密存储的密码,如果那么验证也太飞快了吧,每个不定长子串都加密或者 Hash 匹配一次,也是很大的次数吧。(应该超过多项式复杂度了吧)

我目前知道的,防止人暴力枚举的方法是PBKDF2, 让每次尝试的时间成本很大,(当然对嵌入式设备,尤其是没插电的,可能有更省电的方式)而不是简单的程序判断错误次数超过阈值就休眠,因为这个内存中这个次数对于金手指来说是可编辑的。


我当然知道这只是一个 1000 块的东西,可是安全问题,多考虑一下也没什么问题。

由于本人所知有限,有错误的话,希望大家指正,谢谢。

TypeScript 可不可以被叫做小 Java ?

Posted: 05 Jun 2021 03:55 AM PDT

封装,继承,多态,抽象,接口,重载,简直是一个模子里刻出来的。

怎样用 scroll 实现类似“冻结首行、冻结首列”的效果呢?

Posted: 05 Jun 2021 03:51 AM PDT

有一个 2 行 2 列的结构,
<div id="1"> <div id="2">
<div id="3"> <div id="4">

想要实现的是,
在竖直方向上滚动时,div1 和 div2 保持固定,div3 和 div4 上下滚动;
在水平方向上滚动时,div1 和 div3 保持固定,div2 和 div4 左右滚动;

哪些 css 属性相互配合,能实现这种效果呢?目前我能实现竖直方向的滚动。

使用 openssl_verify 签名校验 SHA256withRSA 的问题

Posted: 05 Jun 2021 03:29 AM PDT

我最近在做 paypal 支付,需要校验异步通知是否伪造的,根据校验规则是 To generate the signature, PayPal concatenates and separates these items with the pipe (|) character. To validate a signature, use this input string:

这里有详细的参数校验规则

https://developer.paypal.com/docs/api-basics/notifications/webhooks/notification-messages/

原始数据如下

Client_pid: 124700 Content-Type: application/json Correlation-Id: 79c56327c8eb6 Dfb0bc8d2e7022fa68259b0ae4e76bff: tag Paypal-Auth-Algo: SHA256withRSA Paypal-Auth-Version: v2 Paypal-Cert-Url: https://api.sandbox.paypal.com/v1/notifications/certs/CERT-360caa42-fca2a594-7a8abba8 Paypal-Transmission-Id: c8defdc0-c51e-11eb-b07a-7921b31043db Paypal-Transmission-Sig: k4pSxwMwn8I5ZcUplN2s4HUtZTueQ39hvdj8a8ozzsSP9+moZnexuiu6jD/RXKe49F+JsRqlkAoIac71D47FztZsME+gogT28Wyj8vdOa7RHyxW1qmOsAkL+7POfqv+qJhLeivfjjABMBnTUptJTHEBjAJe/OgAbBjb5RSFI18HXHqToAlNJzhjsfqAf02AL2a1NZvfVItsZ8/mqWlu6pQPRLlbOFQ4EdE4CIWL4stIyRLvjfye07XM6JMtC/FCqG7fVRya7TbYskNInEianSjDY1xKlOs48KJwEmi2dMYC2WBjkuTnhw3oAKztGHd91sDTWwmZum6ToxAXIaZL0Zw== Paypal-Transmission-Time: 2021-06-04T10:22:37Z X-Daa-Tunnel: hop_count=1 X-Forwarded-For: 173.0.80.116 X-Forwarded-Proto: https X-Nws-Log-Uuid: 13526949154786814179 X-Tencent-Ua: Qcloud Accept-Encoding: gzip  {"id":"WH-9XW19278373474026-31R040160R341690F","event_version":"1.0","create_time":"2021-06-04T10:22:33.352Z","resource_type":"refund","resource_version":"2.0","event_type":"PAYMENT.CAPTURE.REFUNDED","summary":"A $ 30.0 USD capture payment was refunded","resource":{"seller_payable_breakdown":{"total_refunded_amount":{"value":"30.00","currency_code":"USD"},"paypal_fee":{"value":"1.02","currency_code":"USD"},"gross_amount":{"value":"30.00","currency_code":"USD"},"net_amount":{"value":"28.98","currency_code":"USD"}},"amount":{"value":"30.00","currency_code":"USD"},"update_time":"2021-06-04T03:22:06-07:00","create_time":"2021-06-04T03:22:06-07:00","invoice_id":"202106041822037167","links":[{"method":"GET","rel":"self","href":"https://api.sandbox.paypal.com/v2/payments/refunds/0VS41158VR447232A"},{"method":"GET","rel":"up","href":"https://api.sandbox.paypal.com/v2/payments/captures/7YH3814131008200K"}],"id":"0VS41158VR447232A","note_to_payer":"Defective producgd","status":"COMPLETED"},"links":[{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-9XW19278373474026-31R040160R341690F","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-9XW19278373474026-31R040160R341690F/resend","rel":"resend","method":"POST"}]} 

证书可以通过这个连接下载

https://api.sandbox.paypal.com/v1/notifications/certs/CERT-360caa42-fca2a594-7a8abba8 
$Paypal_Transmission_Id="c8defdc0-c51e-11eb-b07a-7921b31043db"; $Paypal_Transmission_Time="2021-06-04T10:22:37Z"; $wh_id="WH-9XW19278373474026-31R040160R341690F";  $json ='{"id":"WH-9XW19278373474026-31R040160R341690F","event_version":"1.0","create_time":"2021-06-04T10:22:33.352Z","resource_type":"refund","resource_version":"2.0","event_type":"PAYMENT.CAPTURE.REFUNDED","summary":"A $ 30.0 USD capture payment was refunded","resource":{"seller_payable_breakdown":{"total_refunded_amount":{"value":"30.00","currency_code":"USD"},"paypal_fee":{"value":"1.02","currency_code":"USD"},"gross_amount":{"value":"30.00","currency_code":"USD"},"net_amount":{"value":"28.98","currency_code":"USD"}},"amount":{"value":"30.00","currency_code":"USD"},"update_time":"2021-06-04T03:22:06-07:00","create_time":"2021-06-04T03:22:06-07:00","invoice_id":"202106041822037167","links":[{"method":"GET","rel":"self","href":"https://api.sandbox.paypal.com/v2/payments/refunds/0VS41158VR447232A"},{"method":"GET","rel":"up","href":"https://api.sandbox.paypal.com/v2/payments/captures/7YH3814131008200K"}],"id":"0VS41158VR447232A","note_to_payer":"Defective producgd","status":"COMPLETED"},"links":[{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-9XW19278373474026-31R040160R341690F","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-9XW19278373474026-31R040160R341690F/resend","rel":"resend","method":"POST"}]}'; $str = crc32($json); $pem = file_get_contents("./1.pem"); $pubkeyid = openssl_get_publickey($pem);  $data= $Paypal_Transmission_Id."|".$Paypal_Transmission_Time."|".$wh_id."|".$str; // state whether signature is okay or not $signature = "k4pSxwMwn8I5ZcUplN2s4HUtZTueQ39hvdj8a8ozzsSP9+moZnexuiu6jD/RXKe49F+JsRqlkAoIac71D47FztZsME+gogT28Wyj8vdOa7RHyxW1qmOsAkL+7POfqv+qJhLeivfjjABMBnTUptJTHEBjAJe/OgAbBjb5RSFI18HXHqToAlNJzhjsfqAf02AL2a1NZvfVItsZ8/mqWlu6pQPRLlbOFQ4EdE4CIWL4stIyRLvjfye07XM6JMtC/FCqG7fVRya7TbYskNInEianSjDY1xKlOs48KJwEmi2dMYC2WBjkuTnhw3oAKztGHd91sDTWwmZum6ToxAXIaZL0Zw==";  $ok = openssl_verify($data, $signature, $pubkeyid,'SHA256');  var_dump($ok);die();  

但是检验的结果是false,能帮我检查一下是哪里写错了吗

JS,在脚本的开头将 fetch 之类的引用给 delete,后面还有办法能获取到吗?

Posted: 05 Jun 2021 03:09 AM PDT

比如
delete globalThis.fetch
....

还有可能再次获取到 fetch 吗?


或者
delete ArrayBuffer
...

还有可能再创建 ArrayBuffer(new ArrayBuffer(8))吗?

[概述] 腾讯云轻量各地域概况及推荐

Posted: 05 Jun 2021 03:02 AM PDT

腾讯云轻量前段时间 618 和无忧计划,在轻量上活动也很多,挑选的时候还是简单总结一下做个参考的推荐吧。


一、性能方面 腾讯云给轻量分配的实例基于如下几种 CVM 机型:

S2:Intel Xeon E5 2680v4@2.4GHz S3:Intel Xeon Gold 6133@2.5GHz S4:Intel Xeon Gold 6148@2.4 GHz S5:Intel Xeon Gold 8255C@2.5GHz SA2:EPYC Rome 7K62@2.6GHz 

处理器方面总体而言 7K62≈8255C>6148≈6133>2680,此外由于迭代的原因在 IO 限制上也会略有差异,总而言之同配置分配到越新的机型体验越好。

国内目前活动的机型基本上都是 SA2 实例,S4 、S5 实例较为少见,学生机则大部分是 S3 实例。香港、新加坡目前为 S2 实例,后期会加入 SA2 实例。硅谷、东京、莫斯科目前见到的都是 S3 实例。


二、网络方面

Ⅰ、国内区域

( 1 ) 北京、上海、广州 国内区域首推当然是北上广,距离自己和目标客户合适即可。北上广是我国的互联网核心,省际互联常常由核心汇聚中继。此外,腾讯云海外是靠电信承载,所以上海广州对国际方向资源的获取会好一些。

( 2 ) 成都、南京 成都地域适用于西南地区(西南距北上广延时都差不多),南京则除了江苏本省之外,更推荐直接选择上海。

Ⅱ、 海外区域

( 1 ) 香港、新加坡 香港地区是腾讯海外网络价值最高的区域,直接接入了电信 CN2 、联通 CUG 、移动 CMI 。东南亚的新加坡相比之下,只有电信接入了 CN2,移动联通都是通过 Singtel 承载。

( 2 ) 硅谷 北美地区的硅谷电信接入了 CN2,由于北美 CN2 单价较低反而冗余较多,电信用户访问的速度往往介于香港、新加坡间,在其拥塞时还可能更稳定。移动联通则完全不推荐,通过 Telia 和 Level3 承载,速度没有保障。

( 3 ) 东京、莫斯科 东京和莫斯科是冷门地域,对大陆完全无优化。东京地区移动电信是 NTT 和 KDDI 随机,联通则是 NTT 和内网绕行 Singtel 。莫斯科地区基本都是 Megafou,不用考虑。


总而言之,国内推荐优先北上广;国外优先香港,其次新加坡硅谷;考虑处理器性能那莫斯科和东京往往更抢手一些,这两个冷门地域不是因为网络更适宜才售罄的……

Milkdown,所见即所得的插件化 Markdown 编辑器

Posted: 05 Jun 2021 02:06 AM PDT

最近做好了文档站点和第一个正式版,它的主要特点有:

  • 开源,永久免费
  • 插件化,易于扩展
  • 可嵌入任何 web app 和 electron
  • 基于 prosemirror 和 Markdown-it,稳定,并且可以重用他们的社区插件
  • 简洁,可定制主题

欢迎大家试用和提出建议

谁能分享一个 xunsearch 增量索引具体的实现方法?

Posted: 05 Jun 2021 01:30 AM PDT

网上找到的教程不是太久远就是不能用了

谁分享一个最新 xunsearch 版本增量索引更新的方法?直接代码更好

@Transactional 注解里的 rollbackFor=Exception.class 是否真的有意义?!

Posted: 05 Jun 2021 01:02 AM PDT

最近看 @Transactional 相关的博客,发现说事务只会在 Error 和 RuntimeException 时,才会回滚。

所以必须配置 rollbackFor=Exception.class 才会在非运行时异常时,回滚数据。

非运行时异常,不是通不过编译?!加上 try catch 之后不也会导致事务回滚失效?!

那为什么还要求配置 rollbackFor=Exception.class ??

有点迷惑,有大佬给解解惑吗?

HarmonyOS 的原子化理念是不是也导致应用开发的概念也需要做个转变?

Posted: 05 Jun 2021 12:55 AM PDT

作为开发者,以后会不会更多的是以 HarmonyOS 这个系统为核心,为系统添加"功能",而不像传统的应用开发以应用为核心?(技术讨论,粉圈勿扰)

电脑硬盘数据备份,备份到移动硬盘,有没有办法增量备份同步?

Posted: 05 Jun 2021 12:28 AM PDT

几百 G 的数据,过段时间备份一次,要好几个小时,挺麻烦的,有没有支持增量备份或者同步 的办法?

还有 WIN10,备份系统和安装的软件,有没有好的方法? 换电脑或者更换固态,可以 快速移植 系统和安装的软件!

腾讯云和第三方服务商之间真的不会共享数据吗

Posted: 04 Jun 2021 11:30 PM PDT

今天早上登陆了一下腾讯云,然后一个手机号码就打过来了,先说自己是"腾讯云授权服务中心",然后问我需不需要协助,我问了一下才知道,这人不是腾讯云官方的,说自己是"北京华宇佳业"(当时没听太清,事后上网查到应该是这家公司),公司官网: http://cloudhuayu.com ,官网显示确实和腾讯云有合作*。

我问是怎么获取我的联系方式的,说不是腾讯云提供的,是自己查到的,说是通过天眼查查到的,显然是不可能的,楼主截止到现在没注册过公司,以前问过腾讯云的客服说不会把联系方式提供给第三方。而且腾讯云不给你数据让你自己上网爬?

不知道是不是巧合,又相似经历的朋友吗,假如提供云服务的企业把客户的数据分享出去,不管是主动还是被动,多少有点恐怖,通话加腾讯云操作记录都有,提交工单有用吗。

*好奇,这家公司网站底部写着"腾讯云 版权所有"、"腾讯云授权服务中心",然后说自己不是腾讯云

centos7 禁止锁屏后还是会锁屏

Posted: 04 Jun 2021 09:56 PM PDT

centos7 禁止锁屏后还是会锁屏 怎么解决

在一台机器上搭建两个 OCSERV 服务器是否可行?

Posted: 04 Jun 2021 08:40 PM PDT

如题,在一台机器上的两个接口(如 eth0 和 eth1 ),搭建两个 ocserv 服务器,外网用户通过任意一个接口均可以 VPN 接入内网(如 eth2 对应的 LAN )。貌似 OpenWrt 不行,不知道在 Debian 等 Linux 下是否可行。

在对方可以拿到真实 Ip 的情况下,如何防御 ddos 攻击?

Posted: 04 Jun 2021 08:17 PM PDT

RT,不是做网站,只是拿服务器跑流量,我用了 iptables 屏蔽了国外节点,但是无法下一些国外的东西

PT 下载负载高,该升级硬盘还是 cpu 啊?

Posted: 04 Jun 2021 02:14 PM PDT

300M 宽带,N2600,1g 内存,PT 下载 20 到 30M/s,负载经常 4 到 5 点几,如果这时候播放就会卡顿,是 cpu 还是硬盘不够啊?

谢谢!

单纯想体验 miui 的话哪个机型合适?

Posted: 04 Jun 2021 11:44 AM PDT

想收个小米系手机体验 miui 。

不在乎拍照、扬声器、防水、扬声器马达这些。

只看重充电速度,屏幕素质,重量以及后续 miui 的升级优先度的话应该选择哪款机型呢。

之前体验过 10s,对比 find x3,虽然只差了 15g,但是握在手上感觉差异特别大。

centos 系统如何永远禁止网卡随系统启动

Posted: 04 Jun 2021 10:18 AM PDT

修改网卡配置文件 NOBOOT=no none 也试了 不行

项目升级花了一天的时间解决各种冲突

Posted: 04 Jun 2021 09:36 AM PDT

所谓的企业级项目,无数个依赖包,老旧的包版本,版本互相冲突
再加上 java 让人头晕的各种框架
要命了

iPhone 如何传输文件到 Android?

Posted: 04 Jun 2021 04:33 AM PDT

希望像 airdrop 那样传输,原片质量。

不考虑云盘,比如某度云盘, 不考虑 GG 相册 不考虑登录 QQ 传输

爱普生 ef12 腾讯极光系统播放 nas 影片

Posted: 03 Jun 2021 09:27 PM PDT

618 买了一个投影仪,用的腾讯极光系统,下载了一个 nplayer 发现挂载不了 nas,nfs 和 smb 都试了,没有权限,是系统的问题吗,下了个 plex 又找不到 plex server,烦死了,求推荐最佳使用方式

No comments:

Post a Comment