V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  qbqbqbqb  ›  全部回复第 9 页 / 共 26 页
回复总数  510
1 ... 5  6  7  8  9  10  11  12  13  14 ... 26  
所有方法都 O(1)是不行的
可以做到所有方法都是 O(log n)

主要有两大类:
* 跳跃表( skip list ),单次操作时间复杂度为期望 O(log n),实现较为简单
* 带有 order statistics 的平衡二叉搜索树(包括 AVL, 红黑树, Splay 等多种实现),根据实现的不同,单次操作时间复杂度为期望、均摊或严格 O(log n),实现较为复杂
2022-06-30 23:15:19 +08:00
回复了 brMu 创建的主题 Android 用了 2 年半华为,今年换回 K50 了,说说感受
@archiyuan 下载个谷歌商店安装包就能启用的前提是需要手机本来就内置了谷歌基础服务。现在的华为手机都是不带这个基础服务的。

安卓 11 之后,手机不内置谷歌基础服务的话是肯定不能通过除了刷机以外的方法安装谷歌商店的。同时华为现在也不能解锁 BL 刷机。
2022-06-30 17:18:15 +08:00
回复了 urnoob 创建的主题 Linux buguntu 20.04 DESKTOP bug 真多
“网络管理设置 DNS 不生效”检查一下是不是选项有错。

IPv4 的“DHCP”选项下手动设置 DNS 是附加 DNS ,原本自动下发的 DNS 仍然为默认 DNS 。
如果要强制使用手动设置 DNS 的话,要把地址获取选项设置成“DHCP ,仅地址”

同理如果有自动下发 IPv6 DNS 的话,GUI 里面 IPv6 的地址获取选项也要设置成“自动,仅地址”
2022-06-30 14:17:39 +08:00
回复了 bestcondition 创建的主题 程序员 正向与反向代理如何保证 https 是安全的?
总而言之就是,如果是应用层代理就需要解密 HTTPS ,可以监听。传输层( TCP 代理)或者 TLS 层代理( SNIProxy )就不会中途解密 HTTPS ,不引起证书警告的情况下无法监听。

另外就是“HTTP 代理”尽管是一种应用层的代理协议,但它能够提供代理传输层的 TCP 流量的功能。
2022-06-30 14:09:26 +08:00
回复了 bestcondition 创建的主题 程序员 正向与反向代理如何保证 https 是安全的?
反向代理的话也要看实现原理。
如果是直接透传 TCP 或者 TLS 流量的,使用的就是后端服务器的证书,加密是从客户端到后端服务器直接建立的,无法监听。

如果是反代 HTTP 或者 websocket 的,反向代理就也需要自己的证书,并且只是加密上也是一段一段的,反代服务器可以解密出明文。
2022-06-30 14:05:34 +08:00
回复了 bestcondition 创建的主题 程序员 正向与反向代理如何保证 https 是安全的?
只说正向代理。
通俗地说就是“HTTP 代理”这种协议代理 HTTP 和代理 HTTPS 的原理是不一样的。代理 HTTP 时是代理服务器帮你向目标服务器进行请求(使用的是 GET POST 等方法)。代理 HTTPS 的时候是利用了 HTTP 里的一个特殊方法 CONNECT 建立一个 TCP 隧道,代理服务器实际上是在代理已经加密之后的的 TCP 连接,是无法监听里面的内容的。

(注意不是另外一种“HTTPS 代理”,现在一般都是用“HTTP 代理”通过 TCP 透传来代理 HTTPS 流量,“HTTPS 代理”很少见了)
2022-06-23 11:56:13 +08:00
回复了 galaxynexus 创建的主题 程序员 请教一下,现在哪家服务商域名备案不需要扫脸?
备案扫脸是代替以前的幕布拍照的。如果不要扫脸的话就肯定要用幕布拍照。
2022-06-21 13:52:48 +08:00
回复了 kgdb00 创建的主题 Linux 如何用非 root 用户通过 ip 这个命令创建 tap 设备?
如果你自己编译的 ip 命令没有链接 libcap 的话就不会有 drop_cap 这个功能
2022-06-21 13:49:28 +08:00
回复了 kgdb00 创建的主题 Linux 如何用非 root 用户通过 ip 这个命令创建 tap 设备?
刚刚查了一下资料,确实是 ip 命令本身的问题。ip 命令在启动的时候检测到非 root 就会扔掉一些 capabilities.

源代码:
https://github.com/shemminger/iproute2/blob/main/ip/ip.c (注意到 main 函数里调用了 drop_cap )
https://github.com/shemminger/iproute2/blob/main/lib/utils.c ( drop_cap 函数实现)
2022-06-21 13:38:00 +08:00
回复了 kgdb00 创建的主题 Linux 如何用非 root 用户通过 ip 这个命令创建 tap 设备?
你看一下 /usr/sbin/ip 是不是链接到 /usr/bin/ip 的软链接。软链接上没法设置 capabilities ,得在实际的文件上设置。
2022-06-21 13:26:13 +08:00
回复了 MuskLee 创建的主题 Linux iptables 智能路由问题,感谢大佬
其实这个就是常见的一种对 iptables 的误解:很多人认为 iptables 里的 NAT 规则( SNAT 和 MASQUERADE ;这里先不讨论 DNAT )是负责“转发”的。

实际上不是这样的,SNAT 和 MASQUERADE 规则,功能就仅仅是做 NAT ,也就是对从指定出口转发出去的数据包修改源 IP ,并且建立临时映射对返程数据包做对应的处理使其能被正确收到,仅此而已。
至于这个数据包会不会从“指定出口”出去,这个不归 iptables 管,归路由表管。

想实现这个需求需要用到“策略路由”,流程上大概是在 iptables 的 mangle 表里给数据包用 MARK 操作打上标签,然后再在 ip route 这边新建一个路由表 table 并且设定相应的路由,和主路由表区分开来(比如说你现在主路由表是默认走 tun0 ,就新建一张默认走 eth0 的路由表),最后再用 ip rule 里面提供的 fwmark 规则指定打了特定标签的数据包走新建的路由表。
2022-06-18 12:19:17 +08:00
回复了 kgdb00 创建的主题 Linux gcc 为什么连这种代码都能编译通过?
首先很显然 (argv-1)[argc] 和 argv[argc-1]访问的是同一个东西。然后根据 C 语言数组下标操作的定义,(argv-1)[argc]和 argc[argv-1]又是等价的。
2022-06-15 14:51:34 +08:00
回复了 starryloki 创建的主题 宽带症候群 OpenVPN 的两个奇怪问题
客户端设备是 Windows 吗?如果是的话,NAT 类型和 Windows 防火墙也有关系,防火墙没有放行传入连接测出来就是 PortRestrictedCone
2022-06-14 20:45:33 +08:00
回复了 asanelder 创建的主题 程序员 Java 原地修改字符串, how?
@asanelder 这种应该属于某些题目的进阶要求吧,题目里也只是说如果你用的编程语言里字符串是可变数据类型的话可以尝试 inplace 做法,不用也能通过。想达成这个目标的话用 Java, Python 这些语言是没办法的,只能换成 C++.
2022-06-13 23:32:02 +08:00
回复了 FenixVu 创建的主题 Linux 删除/lib64/libstdc++.so 导致服务器无法启动
@FenixVu dpkg 不是非要在同一个系统里用的。只要 recovery 启动盘里有 dpkg 程序,用参数指定一下 database location 就能读取硬盘上面的系统的软件包状态了
2022-06-09 09:53:19 +08:00
回复了 Chang12 创建的主题 程序员 写了个中国程序员最容易读错的那些单词,欢迎 V 友体验
@mkmoon gnome 作为英文单词 g 不发音,但是 GNOME 作为软件名称,按照开发者的官方说法,G 是发音的,用来和原英文单词区分。相似的情况还有 GNU.
2022-06-08 15:33:57 +08:00
回复了 usb 创建的主题 问与答 有熟悉虚拟币的 v 友吗?
@areyouF TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t 可不是什么恶意合约,这就是 USDT 代币的合约。这种代币都内置了授权别人动用自己的币的功能( DEX 去中心化交易必须依靠这种功能才能运作)。

这个合约没问题。但是 OP 的交易有问题。OP 这种很明显是被骗了授权。
2022-06-08 15:30:15 +08:00
回复了 usb 创建的主题 问与答 有熟悉虚拟币的 v 友吗?
@usb 典型小白被割韭菜的案例。玩币之前一定要搞清楚原理,不然分分钟完蛋。

这种 ERC20 合约虚拟币(其它的什么 BEP20 TRC20 等等都是同一个原理)都有一个叫授权( Approve )的功能,可以通过自己发起一笔特殊的交易来允许别人自由转走自己的一定数量(可以设置一个非常大的数相当于无限量)的币。你要是什么都不懂,别人发给你一个交易二维码,你扫了一下发现不用花钱就直接同意了,结果这个交易是授权,然后你的币就没了。

对应 45 楼里这个交易,你的授权操作是 5 天前的这笔: https://tronscan.org/#/transaction/08e3f4b3f0bf195f548bf905de42a4a835146b49423a5a0d2d4d0c570a02283b
你想想当时是不是扫了什么码或者点了什么链接,然后进行了一笔不要钱的交易。这笔交易本身不要钱,但是后续他就可以随便转走你的币。

另外除了普通的明晃晃骗授权的(因为现在钱包软件一般也有提示,稍微有点警惕也不好骗),还有一种骗签名。比如说有些币圈网站是用钱包登录,中间要通过“签名”来验证你的身份,因为不是交易,很多人可能就直接同意了。如果签名内容是文本一般都没有问题,但有时候签名内容是二进制数据,你根本一眼看不出是啥,结果实际上这段二进制数据就是一笔交易数据,你签名就相当于发出这笔交易了(区块链基本原理),然后币被转走。不了解技术的小白面对这种骗局防不胜防。

所以玩币之前一定要学习一些区块链技术。除非你只是纯在交易所炒币(当然这个坑也很多)。只要涉及钱包操作的,最基础的区块链交易、私钥、助记词、代币发行的原理一定要搞懂,进阶一点的最好学会阅读一些简单的智能合约代码。一点技术都不懂极易被骗。
另外币圈投机也是风险非常大的,看过新闻的都知道,什么土狗归零、杠杆爆仓,亏光家产跳楼的比比皆是(这种在币圈还属于相对上比较正规的玩法)。哪有像你这种按要求操作就可以稳赚的兼职?
你这根本就不是玩币,属于纯纯的电信诈骗。这种所谓“兼职”一般都是先用你的账号洗钱(这个阶段你会有一点“收益”),最后你没有利用价值了以后就是收网一波带走,骗走你剩下的所有财产。如果单纯是电诈受害者还好说,但你这都参与跑分洗钱了,可以说自己也有责任。
2022-06-08 14:21:04 +08:00
回复了 vone 创建的主题 程序员 SSH 私钥设置 passphrase 后, VSCode 的版本控制如何推送代码
@vone PuTTY 自带的 agent 也是临时存储,但它用的是 pageant 协议,如果要和 git 一起用的话需要通过一些工具转接。

这里也需要考虑你的 SSH 客户端是什么版本,Win10 自带的 SSH 客户端无法使用 pageant agent ; git 自带的 SSH 客户端可以通过 git 内置的 ssh-pageant 工具来转接。另外就是安装 git for windows 的时候有一个选项是可以选择使用 PuTTY Plink 作为 ssh 客户端,这样就可以原生支持 pageant agent 了。

总而言之就是想要避开 Win32-OpenSSH 的 ssh-agent 永久保存私钥的坑点,最好还是卸掉系统自带的 SSH Client ,换用其它的 Windows 平台可用的 SSH 实现。
2022-06-08 14:13:13 +08:00
回复了 vone 创建的主题 程序员 SSH 私钥设置 passphrase 后, VSCode 的版本控制如何推送代码
@vone 你说的这个问题只存在于 Win10 自带的 SSH 客户端。以前 Windows 不内置 SSH 客户端的时候,都是使用 git for windows 内置的 ssh (基于 msys2 ),它的用法和 Linux 里的差不多,不存在永久性保存私钥的问题。

在系统可选功能里卸掉 Windows 自带的 OpenSSH Client ,然后重新安装一遍 git for windows ,以后 VSCode 就会自动使用 git for windows 提供的 ssh 和 ssh-agent 了。(不过这个 ssh-agent 启动有些麻烦,并且使用的时候需要手动设置环境变量或者 ssh 的 IdentityAgent 选项)
1 ... 5  6  7  8  9  10  11  12  13  14 ... 26  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5943 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 46ms · UTC 02:13 · PVG 10:13 · LAX 18:13 · JFK 21:13
Developed with CodeLauncher
♥ Do have faith in what you're doing.