Monday, August 2, 2021

V2EX - 技术

V2EX - 技术


关于 RSA 算法的疑问

Posted: 02 Aug 2021 04:34 AM PDT

关于 RSA 算法的疑问

网上很多 RSA 的证明都是基于欧拉定理 m ^y(n) = 1 mod n

m ^(ky(n) + 1) = 1 ^k • m mod n = m

这里,有个前提是 m 和 n 互质啊, 这里 n =p•q
现实中,我们需要加密的消息千奇百怪,很有可能 m = p 或者 p 的倍数。
这样就不满足欧拉定理条件?

在 m = k *p 的情况下,如何证明呢

 /*** p = 3  q = 5 n =  15 y(n) = (3-1) * (5-1) = 8 e = 3  pulic key d = 3  private key e * d =  y(n) + 1 =  9 ;   ***/ console.log('\tM \tEuler test \tRSA test ') for (let msg = 0; msg < 15; msg++) {   var z = msg;   var z0 = msg;     z = (z * z) % 15;    z = (z * z) % 15;    z = (z * z) % 15;    var rsa = z * z0 % 15;    console.log(`\t ${msg} \t${z}${z==1 ? '  ' : ' x'} \t${rsa} `)    }  

结果

 M       欧拉测试(m^8==1)    Rsa 测试(m^9=m)           0      0 x     0           1      1       1           2      1       2           3      6 x     3           4      1       4           5      10 x    5           6      6 x     6           7      1       7           8      1       8           9      6 x     9           10     10 x    10           11     1       11           12     6 x     12           13     1       13           14     1       14  

竟然不支持表格

结果也是正常,消息 m 需要与 n 互质欧拉公式菜鸟成立,但是 RSA 确能正常加解密

请教一个 nginx 的端口转发问题

Posted: 02 Aug 2021 04:26 AM PDT

前言

本人是一个不懂后端的 iOS 开发,对 nginx 略知一二,知道它是做反向代理的,知道在哪改 nginx.conf,知道改完怎么 reload

问题描述

现有一太内网机器,领导帮我配置了一个可外网访问的域名,并用 nginx 配置了一个 ssl 证书,端口是 8088 ;

我用 docker 部署了一个服务,暴露的端口是 3000 。

现在希望能将 3000 端口映射到 8088 端口的一个路径下,比如 https://xxx.com:8088/yyy,从而实现外网能访问 3000 端口的目的。

网络上搜索了几个结果,但都没有效果,现在的配置:

location /yyy/ {     proxy_set_header        Host $http_host;     proxy_set_header        X-Real-IP $remote_addr;     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;     proxy_set_header        X-Forwarded-Proto $scheme;      proxy_pass http://0.0.0.0:3000/; } 

现在能实现的效果是能进首页,但是无法加载 css/js 等资源文件,提示 404,但是我不知道该怎么改了。

极客时间现在越来越拼夕夕式骗人了

Posted: 02 Aug 2021 04:18 AM PDT

今天给我推个课"Node.js 开发实战 限时拼团 69 元,明天涨价"。 我看价格还挺划算的,再加上想学点 Node.js ,就准备先买了呗。 然后我点进去一看,拼团根本不是 69,而是 99,即使用上优惠码也是 89. 真是耍猴啊。 质量越来越差,涨价的钱是不是都拿去营销了?

而且根本联系不到客服的,藏地比某猫超市还深。

截图对比

远程控制安卓手机(小米)有问

Posted: 02 Aug 2021 04:10 AM PDT

目前使用过的几种方式,能实现但效果不是特别理想。
1.AirDroid(免费版限流量,主要卡+各种断线)
2.ZeroTier+QtScrcpy(wifi 下体验看运营商,4g/5g 网络下挺无能为力)
3.蒲公英组的 1m 免费 vpn(几乎不可用)

手机已经 root,目前也考虑 root 的方案。手机厂商自家的远控方式都没有很便携的吧,都是要被控端点几步才行。
我是为了远控控制父母手机操作用的,他们经常把 wifi 关了然后上不了网。
我是准备无限量的 5g 卡+远控实现

大龄程序员的归宿,是继续留在一线城市还是回到老家的小城市

Posted: 02 Aug 2021 04:09 AM PDT

现在坐标魔都,做游戏后端程序,老家是山东普通的农村家庭,今年 26 了,前几天回家参加高中同学婚礼,感觉老家的同学幸福感比我要高很多. 现在一个人在上海,生活说不上好说不上坏,但是有时候会很孤独(这个其实还好), 这次回去 很多同学在一些吃饭,喝酒,感触还是很大.想到了,如果回来买房定居,离家近,身边还有一群熟悉的朋友,赚多赚少的 也挺好的.

但是大城市的工作氛围,工作机会,生活等等(相比我们那,上海的好处是凭实力,按规矩来,不用托人,走后门等等,还有山东那边官僚作风还是有点的)也有点舍不得和不甘. 但是回到现实, 想在上海买房定居, 除了中彩票,基本没戏了. 总不能租一辈子房子吧, 我家里就我一个,等父母年纪大了,不在身边也不行. 现在就陷入两难的了. 不知道该怎么选择了.

以前也考虑过在上海周边, 比如苏州啊,嘉兴平湖等等地方买房子. 我有一个同事就在平湖买的, 现在他和他老婆还是在上海租房,听他说等房子装好了, 把父母接过来, 等有了孩子,让父母在那给他带孩子. 他俩周末回去. 这也是一个折中的办法. 但是想想也是很累., 说真的,他老婆也算比较好的了,能一直陪着他.

还有回去工作也是个问题, 老家那里, 游戏公司别想了, 互联网公司都没有. 回去的话,最好的工作应该就是进 传统行业的 开发岗位了, 我们那里, 潍柴, 歌尔 是比较大的公司了. 要不就转行了,重新开始. 再就是创业, 这个风险是最大的, 自己啥实力自己也清楚.

说了一大堆,有点乱,想听听 V 友的经验和看法

通过 ipsec/L2TP 加入到局域网的设备,是否能接收到 UDP 广播?

Posted: 02 Aug 2021 04:04 AM PDT

RT, 在公司通过 VPN 加入到家庭网络 在网络里不会自动发现群晖,同时通过 remote-play ( PlayStation 的远程客户端),也搜索不到本地设备。

所以猜测是通过 ipsec/L2TP 加入到局域网的设备,不能接收到 UDP 广播?

PostgreSQL 有什么好用的客户端连接工具吗?

Posted: 02 Aug 2021 03:24 AM PDT

pgAdmin 感觉用不习惯,总感觉卡卡的。

Navicat 对 PostgreSQL 的字段类型显示不友好,smallint 类型显示成了 int2,bigint 显示成了 int8.

项目在本地写了很久,没有 commit 过,今天打开的时候从很早之前的一个 commit 版本打开了,咋恢复

Posted: 02 Aug 2021 03:12 AM PDT

今天脑抽,webstorm 打开的时候清了下启动项目那里的缓存,发现代码变成了很久之前的一个版本,git history 是很久之前的了。 能恢复吗?编辑器本身的缓存打开,而不是 git 的某一个版本打开,咋操作?

各位大佬,请问各位大佬公司都怎么管理 MQ topic 和 Redis 节点的?

Posted: 02 Aug 2021 02:35 AM PDT

甲方公司该怎么管理大型项目的 MQ topic 和 Redis 节点的?

Android Rom 开发学习路线求推荐

Posted: 02 Aug 2021 02:32 AM PDT

一直想定制一款自己 Rom 包 增加一些特色功能奈何技术有限

求大佬指一条学习路线... (目前本人会点点 Java 和 基础的 C)

我是打算基于:魔趣 或者 Lineageos 开发的.

有大佬在阿里云上搭过 redash 吗

Posted: 02 Aug 2021 02:31 AM PDT

系统版本查看了下是 Centos6, 官方给的 setup 教程是基于 Ubuntu 的,然后社区里面搜了下 Centos 相关的脚本都是 基于 Centos7 的,试着跑了一下也是各种报错,是不是 Centos6 很老了啊? Linux 小白属实给难住了, 有大佬指点一二吗

DNS 问题,研究到凌晨 4 点还是没有结论...救救孩子吧

Posted: 02 Aug 2021 02:15 AM PDT

最近看了 DNS 解析相关的内容,然后就好奇 dig 了一下公司的一些域名,发现自建了好多二级域名服务器。这么多服务器明显是为了容灾+分流,然后我就在想,DNS 服务器的高可用是怎么保证的?

于是我:
1.搜索了相关的 DNS 集群搭建,发现都是介绍 dns 主从服务器搭建的比较多,说一主多从就算是一个集群,但我觉得这点能力是不太够支撑高可用的
2. 找了下有没有相关大厂 DNS 这块的高可用设计,找到阿里的,但是关于一些细节的描述并没有,看完之后似懂非懂 -> https://zhuanlan.zhihu.com/p/115909472
3. 404 网站找了一番,也是多数关于 DNS 主从服务器的搭建,帮助不算太大

无奈的我只能在这里发帖问问大家,希望有相关经验的家人们能够点拨一下~

dns 解析这一层,是怎么保证高可用的?
用集群冗余备份大概率没跑了,但是集群内部是怎么同步数据的?集群中的每一个节点都向外提供服务吗?
一个进群可能不够,那多个集群之间又是怎么同步的呢?

真的感觉自己知道的太少了~

某些场景下 wsl2 的文件系统简直蛋疼的不行

Posted: 02 Aug 2021 01:44 AM PDT

一般来说我们还是希望 IDE 运行在 windows,但是引用环境在 linux 。所以使用 wsl2 有个绕不过的问题,把文件放 windows 还是 linux 里

放 windows 里(/mnt/c ),先不论跨文件系统的性能,npm build 能卡个好几分钟不说,最主要是失去了文件监控的功能,修改文件后,不会自动化重新编译,极大影响了效率

放 linux 里(\wsl$),npm build的问题倒是没了,但是又有个 go: RLock \wsl$\Ubuntu\……\go.mod: Incorrect function. 的问题。

goland 还不支持直接使用 wsl 里面的 go 环境,所以还需要在 windows 上安装 go 环境,访问 wsl 中的文件,wsl2 本质上还是个虚拟机,windows 访问 linux 是通过网络文件系统( 9P ),然而 go 加锁不支持 9P,所以无法在 windows 上编译、运行了,IDE 上的很多功能用不了,需要进 wsl 命令行操作。

不过好在可以配置 Build on remote target,也勉强能用,但是整体操作上还是很割裂。

还有一个就是文件放 linux,万一不小心把环境删了,代码啥的都没了。

注:Mac 有,只是有时候用下 windows

相关资料:

https://docs.microsoft.com/zh-cn/windows/wsl/compare-versions

https://github.com/microsoft/WSL/issues/6255

https://www.jetbrains.com/help/go/how-to-use-wsl-development-environment-in-product.html#local_project

https://stackoverflow.com/questions/62837419/how-can-i-set-up-goroot-in-wsl2-goland

https://youtrack.jetbrains.com/issue/GO-10618

https://github.com/golang/go/issues/37461

突然接到甲方的一个需求,要求从 hadoop 集群回到单机....

Posted: 02 Aug 2021 01:09 AM PDT

我这边是几个服务器组的 hadoop 集群,主要是 ETL 清洗推送,今天突然接到个要求,说要减少到一个服务器,这。。。 有哪些理由可以和甲方扯皮吗?

自动化测试的数据都是手工维护的吗?

Posted: 02 Aug 2021 01:04 AM PDT

很多 V 友推荐我们先做 ci/cd,我给领导反馈后,领导让我抗下了这个重任……

"自动化测试无论单元测试、接口测试、功能测试都会面临一个挑战,即如何能够做到大规模、工程化的自动化测试。如果测试数据无法做到灵活、大规模的管理,那么自动化测试就始终无法做到规模化,无法起到快速验证、快速集成、快速交付的目的。" 这是在一个数据生成器的网站上看到的内容: https://www.zendata.cn/redirect-index-76.html

自动化测试的话,数据维护很重要。所以你们的数据都是自动生成的吗?

连接公司网络导致 Nacos 更改配置后, nacos 会请求一个陌生 ip,不连公司网络就没问题,关于网络真的不懂,顺便有没有相关书籍可以推荐一波啊?

Posted: 02 Aug 2021 12:50 AM PDT

有哪些比较有名的渐近式应用软件? 就是利用 Web 技术来构建渐近式的富客户端。

Posted: 02 Aug 2021 12:46 AM PDT

主要是结合 web 和 cs 客户端两者的优点,来构建 App 。它具备如下好处:

1. 无需下载安装,即开即用。跨平台、支持各类设备,不同系统平台。
2. 首次运行只显示一些基本框架和简单的功能。但它可以边运行 /边下载缓存,渐渐地可以显示更多的页面和操作更加复杂的功能。
3. 随着运行次数的增多,缓存的数据越多(刚开始只有几 MB,慢慢增加至几十 G/上百 G,不设限),但 App 功能也越来越强大。
4. 善于利用本地硬件进行加速,超越 Web 的表现力。

Linux 核显笔记本。只有一个 hdmi 口可以输出视频信号。想外接两个显示器,笔记本自带屏幕可以不用,应该怎么做呢?

Posted: 02 Aug 2021 12:34 AM PDT

核显 Intel Iris Xe
系统 linux mint
看到有人说外置显卡, 但是好像配起来很麻烦。。。大家是怎么做的呢

统计一下,有多少公司在用 k8s 的?

Posted: 02 Aug 2021 12:08 AM PDT

主要是统计 Java web 的

当调用原始 syscall 填充__user 空间指针后,紧接着访问这个指针是否需要 copy_from_user?

Posted: 02 Aug 2021 12:07 AM PDT

这里我做了 access_ok 检测 msg 指针,安全起见是否需要 copy_from_user ?

        ret = KHOOK_ORIGIN(sys_recvmsg, sockfd, msg, flags);  	/* Some error occured. Don't do anything. */ 	if (ret < 0) 		return ret;  	/* check __user addr is safe */ 	if (!access_ok(msg, sizeof(struct msghdr)) { 		return ret; 	}  	/* Extract netlink message header from message */ 	nlh = (struct nlmsghdr *)(msg->msg_iov->iov_base); 	if (nlh == NULL) { 		//printk(KERN_WARNING "nlmsghdr is null"); 		return ret; 	} 

vscode 断点变成空心,显示未验证的断点什么原因阿?真心求解

Posted: 01 Aug 2021 11:55 PM PDT

以前也碰到过,今天又碰到了,周五下午还好的呢。。( golang 的代码)

敏捷开发中一个 issue 的开发时间和测试时间的占比有人统计吗?

Posted: 01 Aug 2021 08:57 PM PDT

在理想情况下有一个科学合理的比值吗?

最近遇到了这么个话题

想问问各位老哥你们的实际情况

reactor.io 使用 Flux.create 创建 Flux 时,需要注意 consumer 会被多次调用,解决起来挺麻烦的

Posted: 01 Aug 2021 08:42 PM PDT

创建 flux 代码如下,其中的 long consumer 可能会被下游多次调用。

        Flux.create(new Consumer<FluxSink<Object>>() {             @Override             public void accept(FluxSink<Object> fluxSink) {                 fluxSink.onRequest(new LongConsumer() {                     @Override                     public void accept(long value) {                         log.info("我被多次调用了 request:" + value);                         for (long i = 0; i < value; i++) {                             fluxSink.next("request:" + i);                         }                     }                 });             }         })  

也就是说,我们不能决定下游调用的时机,调用的次数,调用的所在线程。这样就很容易产生 bug 。


FluxArray 解决此问题的办法是使用 Operators.addCap(REQUESTED, this, n) == 0判断, 只有返回为 0 时,才进行处理,否则将请求的 n 叠加到 request 后就 return 。

		public void request(long n) { 			if (Operators.validate(n)) { 				if (Operators.addCap(REQUESTED, this, n) == 0) { 					if (n == Long.MAX_VALUE) { 						fastPath(); 					} 					else { 						slowPath(n); 					} 				} 			} 		} 

我们自己写 Flux.create() 时也可以借鉴 FluxArray 的处理办法,但是这样就变得麻烦了。 不知道有什么现有封装好的实现没有??

MIUI 中通话录音是如何确认是拨入还是拨出?

Posted: 01 Aug 2021 08:07 PM PDT

在写一个 APP,可以把自己手机上的通话录音保存到云端

这就涉及到一个拨入和拨出的区别

通过这个方法可以获取到在 sqlite 中的数据:

                    val recordCursor = context.contentResolver.query(                         MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,                         null,                         "${MediaStore.Audio.Media.RELATIVE_PATH} = ?",                         arrayOf("MIUI/sound_recorder/call_rec/"), null                     ) 

但是无法区分是打出的还是打入的

有没有朋友做过相关的内容啊,是不是在别的表中存着呢?烦请指点一二,感谢感谢

在微服务架构中,一个领域模型是否要分层?

Posted: 01 Aug 2021 06:52 PM PDT

比如一个订单服务,有一个 order 服务,提供订单核心功能,不能外网访问,是否需要一个 order+服务,用于提供对外接口,可外网访问?

kafka 0.9 版本 同 group 重复消费问题

Posted: 01 Aug 2021 10:00 AM PDT

最近要做个东西,需要从 kafka 消费大量消息,服务器上 kafka 是 0.9 版本的,应用是 springboot-1.5.6 spring-kafka 1.0.0 版本

下面是两个消费者:

@KafkaListener(topicPartitions={@TopicPartition(topic = "spyfool",partitions = {"0"})},group = "home")
public void doConsume(ConsumerRecord a){
log.info("000000 收到 kafka 消息:{},偏移量={}",a.value(),a.offset());
}

@KafkaListener(topicPartitions={@TopicPartition(topic = "spyfool",partitions = {"0"})},group = "home")
public void doConsume1(ConsumerRecord a){
log.info("111111 收到 kafka 消息:{},偏移量={}",a.value(),a.offset());
}

配置文件:
spring.kafka.consumer.bootstrap-servers=127.0.0.1:9092
spring.kafka.consumer.group-id=home
spring.kafka.consumer.enable-auto-commit=false
spring.kafka.consumer.max-poll-records=10
spring.kafka.consumer.auto-commit-interval=100
spring.kafka.consumer.fetch-max-wait=10000
spring.kafka.listener.ack-mode=manual_immediate


但结果明明同组的两个消费者发生了重复消费:
111111 收到 kafka 消息:say my name!3d0e7171-cae1-44c9-8a9a-f21289160108,偏移量=42141
000000 收到 kafka 消息:say my name!3d0e7171-cae1-44c9-8a9a-f21289160108,偏移量=42141
111111 收到 kafka 消息:say my name!90851ac4-1e5f-4ac8-93c9-72acd64ce529,偏移量=42142
000000 收到 kafka 消息:say my name!90851ac4-1e5f-4ac8-93c9-72acd64ce529,偏移量=42142
111111 收到 kafka 消息:say my name!4d0fa93d-c7e7-4f44-beba-bfa6c25aee12,偏移量=42143
111111 收到 kafka 消息:say my name!d1707959-0be2-4ec1-a81d-86ef211cb73d,偏移量=42144
000000 收到 kafka 消息:say my name!4d0fa93d-c7e7-4f44-beba-bfa6c25aee12,偏移量=42143
111111 收到 kafka 消息:say my name!79cfea0d-548d-437d-bd05-8b65a27f9e9a,偏移量=42145
000000 收到 kafka 消息:say my name!d1707959-0be2-4ec1-a81d-86ef211cb73d,偏移量=42144
000000 收到 kafka 消息:say my name!79cfea0d-548d-437d-bd05-8b65a27f9e9a,偏移量=42145


百思不得其解,请问大家能指点一下吗
谢谢了!

m1-docker 装 nacos2.x 启动报错,有解决的老哥吗?

Posted: 01 Aug 2021 09:51 AM PDT

https://github.com/alibaba/nacos/issues/6340

看到 git 上有一位同样的老哥,并没有具体说明怎么修改文件解决这个问题

错误如下: start--------------- 4:40:05.050 [main] ERROR org.springframework.boot.SpringApplication - Application run failed com.alibaba.nacos.api.exception.runtime.NacosRuntimeException: ErrCode:500, ErrMsg:Function not implemented at com.alibaba.nacos.core.listener.StartingApplicationListener.loadPreProperties(StartingApplicationListener.java:160) at com.alibaba.nacos.core.listener.StartingApplicationListener.environmentPrepared(StartingApplicationListener.java:99) ..... end------------------

No comments:

Post a Comment