V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ic2y  ›  全部回复第 5 页 / 共 14 页
回复总数  262
1  2  3  4  5  6  7  8  9  10 ... 14  
2020-02-23 17:00:12 +08:00
回复了 cnskis 创建的主题 问与答 提交漏洞直接给厂商还是给 CNVD?
@cnskis 提给学校吧。教务系统,一般是自研,或者付费购买的。 以前 wooyun 还在的时候,看到过几个《方正教务系统,新开普教务系统》的漏洞,感觉也没有人管,还要被公开漏洞细节。

提给学校的话,直接说你拿到数据的步骤,然后提供一个泄露数据的截图 警告下 就好了。 当初我也发现了一些校务漏洞,用匿名邮件的方式发给学校,学校还邀请我去喝茶谈谈。我没胆去,只是邮件回复保证数据我都没有保留,后来漏洞还是悄悄修了。
2020-02-17 22:02:15 +08:00
回复了 dazhangpan 创建的主题 程序员 问一道阿里的面试题如何求解
@dazhangpan

可以换一个思路,我认为这个题目,考察的内容,非常接近 RC4 的流式加密算法,有个文章链接:
https://www.cnblogs.com/gambler/p/9075415.html

题目中给出的 foo()函数 [产生 0-1 随机数] ,我们可以用来初始化 流式加密的 init 映射状态。随后的 随机数产生,可以完全不依赖 foo()函数,完全依靠流式加密的方式,产生概率 10%的 [0-9]

==============Java 代码如下==================

package com.ic2y;

public class RandomNumber {
private static int MAPPING_LEN = 10;
//映射 0-9 的 关系
private int[] mapping = new int[MAPPING_LEN];
private int i = 0;
private int j = 0;
public RandomNumber(){
//初始化 mapping,再进行打乱
for(int i = 0;i < 10;++i){
mapping[i] = i;
}
//shuffle 算法,
for ( int i = MAPPING_LEN; i > 0; i-- ){
swap(getRandomLessTen(), i - 1);
}
}

private int getRandomLessTen(){
int val;
do {
val = doGetRandomLessTen();
if(val < 10){
return val;
}
}while (true);
}

private int doGetRandomLessTen(){
int val = 0;
for(int i = 0;i <4;++i){
val = val * 2 + foo();
}
return val;
}

//已知的产生 0 1 随机数的 函数
private int foo(){
return (int)System.currentTimeMillis() % 2;
}

//外界调用 boo 产生 0-9 随机数
public int boo(){
i = (i + 1) % MAPPING_LEN;
j = (j + mapping[i]) % MAPPING_LEN;
swap(i,j);
return mapping[(mapping[i] + mapping[j]) % MAPPING_LEN];
}

private void swap(int l,int r){
int tmp = mapping[l];
mapping[l] = mapping[r];
mapping[r] = tmp;
}


public static void main(String[] args){
RandomNumber r = new RandomNumber();
int testNumber = 100000;
int[] f = new int[10];
for(int i = 0;i < testNumber;++i){
++f[r.boo()];
}

float fTestNumber = (float)testNumber;
for(int i = 0; i < 10;++i){
System.out.println(String.format("Num:%d Probability:%.2f count:%d",i,f[i] / fTestNumber,f[i]));
}

}
}

=======结果=======

Num:0 Probability:0.10 count:9863
Num:1 Probability:0.10 count:10051
Num:2 Probability:0.10 count:10054
Num:3 Probability:0.10 count:10024
Num:4 Probability:0.10 count:10031
Num:5 Probability:0.10 count:9942
Num:6 Probability:0.10 count:10007
Num:7 Probability:0.10 count:9877
Num:8 Probability:0.10 count:10083
Num:9 Probability:0.10 count:10068
2020-01-15 11:25:44 +08:00
回复了 ruandao 创建的主题 问与答 uuid 作为主键会存在的问题
1. 如果你用的 innodb 引擎,最好用自增值做主键(主键是聚簇索引)。因为 Mysql 的 innodb 引擎使用自增连续的值,可以规避 B+树的频繁分裂和调整。

2.对于非主键的索引,都是非聚簇索引,每个非聚簇索引的叶子节点存储的是主键的具体值(可以规避插入更新中 B+树的调整)。也就是说:如果主键用 UUID,那么其他的索引都变相的变大了几倍,会导致磁盘空间的浪费。
@passerbytiny 我回复了这么多,不是说不能实现。企业都是讲“成本”的,不是为了支持黑科技或者新特性。 成本:不光是 开发人员的开发成本和接入成本、还有服务器( client 和 server )的内存消耗和 CPU 消耗。

如果支持 RESTful 风格 很容易支持的话,早就全支持了。 业务方不允许你的采集程序占用额外的内存和 CPU,自己部署的中间件平台为了额外的模式提取需要付出性能代价 而加机器。这些个都是成本制约。

如果 RESTful 风格 在没有上下文的前提下,很容易像 POST 一样提取模式,无其他明显成本消耗,就不会这么不建议了。


api?k1=v1&k2=v2 (没有上下文,各个系统能快速解析)



api/k1/v1/k2/v2 或者 /mock/a/k1/v2 (没有上下文,面对海量的各种地址的 URL 请求,需要付出额外的资源进行解析)
@unco020511 如果是一个大厂,只用 GET 和 POST 还是比较靠谱的。 用 RESTful 风格 可能会有不少潜在麻烦。可能的问题有:

1.监控问题:因为监控 URL 请求的时候,需要进行 URL 聚合统计操作,如果用 RESTful 风格 非常难以提取 URL 的模型进行聚合(因为有人用 python,有人用 java,还有不同的应用框架,非常难以在 client 端进行 url 模式提取。而在 server 端模式提取要求的性能又很高。还不如直接用 get 和 post )。

2.配套的日志采集系统:RESTful 风格 在独立上下文的日志引擎里,很难用 URL 进行模式提取。

3.配套的其他系统的问题: 统一 API 网关接入(如果是自研的,需要完整支持 restful 风格)。自动化测试系统(如果自研,也要兼容)。代码审计和代码覆盖平台 等等。

如果你用了 RESTful 风格,那么需要整个 开发运维链路上的每个环节,都要支持完整的操作。但是实际上,很多系统只是支持简单的 GET 和 POST 协议。

你不得不推动 每个团队来支持你的需求,这个等待 是很麻烦的。
hashcode 是在 JVM 里实现的

这个值,可以通过配置参数,改变行为 (-XX:hashCode=1)
0. A randomly generated number.
1. A function of memory address of the object.
2. A hardcoded 1 (used for sensitivity testing.)
3. A sequence.
4. The memory address of the object, cast to int.
5. Thread state combined with xorshift ( https://en.wikipedia.org/wiki/Xorshift)

JDK6 和 7 默认使用 0,一个随机数算法 http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/87ee5ee27509/src/share/vm/runtime/os.cpp#l814。
JDK8 开始默认使用 5,是一个跟线程有关的生成算法。
用 MXBean,项目启动的时候,自己获取自己的 pid,写入一个特殊的位置。kill 的时候,直接 cat 文件,然后 确认是进程本身,然后杀死。给你个代码

RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
/**
* "pid@hostname"
*/
String name = runtime.getName(); // format:
try {
return Integer.parseInt(name.substring(0, name.indexOf('@')));
} catch (Exception e) {
return -1;
}
2019-07-23 09:40:48 +08:00
回复了 blackpop 创建的主题 推广 一个高效率获取资讯的 APP 邀请公测(内有大抽奖)
可以,坐等安卓
2019-05-22 09:42:44 +08:00
回复了 bella0311 创建的主题 程序员 网站 Install 出现问题,完全小白,求指教。
什么建站系统没有说,没有贴 ERROR 信息,没有 Log 信息,没有现场截图。

提问都不认真,大家怎么给你回答?你当大家都站在你屏幕前看着啊。
2019-03-04 10:02:34 +08:00
回复了 mathzhaoliang 创建的主题 问与答 怎样监测一个程序是否正在运行
强制要求所有的程序内嵌 http 服务,进行 状态检测和 负载信息收集。
2019-01-22 18:32:33 +08:00
回复了 qwertyzzz 创建的主题 程序员 有木有免费的 api 管理工具啊
2018-12-19 12:50:58 +08:00
回复了 vzyw 创建的主题 程序员 阿里云轻量服务器一个月 9.5 合算吗?
@vzyw @FakeLeung 能不能发个销售的 url ? 我在官网看不到这样的价格,谢谢。
还是比较难的,要三思.很可能折腾半天,连你原来的工资都不如.

另外,工资也是看地方的.二三线的程序员工资也是一般吧.

大型互联网公司喜欢低价能干活的年轻人,他们吃苦能熬夜加班.你有家庭有小孩有老婆的,要想好.

要么有技术,要么有学历,两样总要占一样.不然面试筛选都过不去.

就听到的一些朋友的亲戚去培训班的情况来说,培训班基本都是坑.学费高,上课放视频,作业是以前的老学员留下来当辅导员批改的,最后教学员伪造工程经历,伪造工作经历.感觉钱花的不值,4个月3万快的学费,你想想.
2018-12-09 20:20:25 +08:00
回复了 Laeoo 创建的主题 Android 从零开始学编程编译 rom,需要什么
穿墙,去看看 google 官方教程 https://source.android.com/setup/build/downloading,谁都能修改 AOSP,再编译使用。
2018-12-09 20:17:10 +08:00
回复了 azev 创建的主题 问与答 想给树莓派加上 4G 通信功能,有什么可行的方案没?
2018-12-07 18:17:21 +08:00
回复了 Oray 创建的主题 推广 「盖楼赢 WiFi 版花生壳盒子」无需公网 IP,也可实现内网穿透
我是分母
2018-11-15 09:41:45 +08:00
回复了 Trumeet 创建的主题 Linux Linux 上有没有好用的文件管理器?
pcmanfm
2018-11-11 15:21:56 +08:00
回复了 luren123 创建的主题 京东 京东保价是在故意欺骗用户么?
前几天单独买显示器,保价退了 100 快,秒退。

但是有的东西是不能退保价 差价的,例如:用了券+满减+京豆这种。。实际下来,单个商品花了多少钱,我也确实算不清楚了,这种的我随便试了试,点了 保价都没用。
1  2  3  4  5  6  7  8  9  10 ... 14  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   899 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 22:54 · PVG 06:54 · LAX 15:54 · JFK 18:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.