- 浏览: 68717 次
- 性别:
- 来自: 杭州
最新评论
-
mengxinyu5490:
谢谢你的文章,这个问题困扰了很长时间了
豆瓣开放平台api的坑 -
alexyu_yxj:
确实一个巨大的坑!我也弄了两个晚上,感谢有你的文章!!
豆瓣开放平台api的坑 -
snowolf:
不错!
Spring笔记(十二)自动代理AspectJ切面
文章列表
数字证书
上面说了这么多算法,又是摘要算法,又是对称加密算法,又是非对称加密算法的。但是对于通讯中的四种威胁——截获、中断、篡改、伪造最多也就只能解决其中的两个,对于中断、和伪造威胁,只能干瞪眼。难道,就没有其他办法了吗。
对于中断,一般是网络拓扑或协议级别要解决的问题,已经超出了我们的范畴,暂时不表,我们只能做到的是当网络不可用时,传输的数据出现丢包或异常时可以进行及时的建设,这里就需要用到数据完整性的验证了。
至于,要对付攻击者“伪造”的威胁,这不仅仅是单一算法层面可以解决的问题了。
通讯模型
正如上面几节所说,伪造分为两种,一种是数据伪造,只要做 ...
数字签名
以上三种算法都有防篡改的功能,但摘要算法、和对称加密算法若要防篡改,则需要交换密钥,这又是一件麻烦事儿。所以一般在单纯的防篡改的需求上,都是使用非对称加密算法。但若是对整个明文进行加密的话,加密过程势必消耗大量时间,所以就诞生了数字签名。
数字签名,本质上就是非对称加密算法,但出于解密运行效率的考虑,并是不对明文进行加密,而是对明文的摘要加密,生成“数字串”,并将“数字串”附在明文之后。
数字签名实际上是非对称加密算法的一个妥协方案,为了提高加解密的效率,舍弃了非对称加密算法对截获威胁的优势。
通讯模型
先来看非对称加密算法的第一种通讯模型,由客户端生成一堆密钥——公 ...
非对称加密算法
对称加密算法指加密解密用同一密钥,那么非对称加密就是加密解密用不同的密钥。加密算法一次生成两个密钥,一个叫做公钥,一个较为密钥。公钥加密的数据,用密钥解密;密钥加密的数据,用公钥来解密 ...
对称加密算法
理论上说对称加密算法,才是我们真正说的加密算法。所谓对称加密算法,通俗的讲,就是使用密钥加密,再使用密钥解密的加密算法的总称。也就是平时我们说到加密算法,脑子里第一个跳出来的加密方式一般都是对称加密算法。上面将的base64其实也是一种“对称加密算法”,只是其密钥公开了而已。
通讯模型
同样的场景:客户端要将数据data发给服务器端。
客户端对使用密钥key,对数据data加密,生成加密串C,通过网络将C传输为服务器端,服务器端,使用密钥key对C解密,获取数据data,做自己的业务逻辑。
摘要算法
我们在平时的工作中经常听到MD5算法。比如在一些下载页面里会给出一个md5的作为文件验证串,在迅雷下载中作为文件的唯一标识。这类算法严格上来说也不是加密算法,是一种叫做摘要算法的算法,不过在平时的使用中,我们经常将摘要算法混合使用,所以在广义上来说也可以将他叫为加密算法。
摘要长度
摘要算法的特点是可以将任意长度的字符串,给转换为定长的字符串。可以意料的是,在这个转换过程中,一定是一共单向的过程。打个比方,我们将一个256长度的字符串转换为128长度的字符串,转换前有N^256种可能,转换后有N^128种可能,这一定不可能是1对1的对应关系。
...
平时在工作和生活中,我们会经常接触加密、解密的技术。
尤其在今天网络化的时代里,越来越多的用户会将数据存储在云端,或使用在线的服务处理信息。这些数据有些涉及用户的隐私,有些涉及用户的财产,要是没有一套的方案来解决用户的数据安全问题的话,这将是一个多么可怕的事儿。
同时,我们作为开发者,也会经常遇到用户对数据安全的需求,当我们碰到了这些需求后如何解决,如何何种方式保证数据安全,哪种方式最有效,这些问题经常困惑着我们。那么我们又会碰到哪些安全的风险的。
安全性威胁
一般的,我们在网络中传输的数据,都可以认为是存在这潜在的风险的。用一句话来概括就是:“任何在网络中传输的明文数据都存在 ...
在测试环境发现了一个问题,每次服务器重启后,所有对新浪微博的请求都可以正常的发出,但从第9请求开始,请求耗时将变为40s左右。
问题要从9和40s这两个关键词开始,httpclient的代码如下:
ProtocolSocketFactory protocolSocketFactory ...
最近在接豆瓣的分享,期间碰到了较多的陷阱,一路磕磕碰碰,还好最终都解决了。下面总结下期间耗费了我一天的一个巨坑。。。
第一次使用在使用豆瓣广播api(shuo/v2/statuses/)即碰壁,查找原因后发现最后的“/”必不可少。
那么我们继续:
MultiThreadedHttpConnectionManager httpConnectionManager = new MultiThreadedHttpConnectionManager();
HttpClient client = new HttpClient(httpConnectionManager);
PostMetho ...
流量预警和限流方案中,比较常用的有两种。第一种滑窗模式,通过统计一段时间内的访问次数来进行控制,访问次数达到的某个峰值时进行限流。第二种为并发用户数模式,通过控制最大并发用户数,来达到流量控制的目的。下面来简单分析下两种的优缺点。
1、滑窗模式 模式分析: 在每次有访问进来时,我们判断前N个单位时间内的总访问量是否超过了设置的阈值,并对当前时间片上的请求数+1。
上图每一个格式表示一个固定的时间(比如1s),每个格子一个计数器,我们要获取前5s的请求量,就是对当前时间片i ~ i-4的时间片上计数器进行累加。这种模式的实现的方式更加契合流控的本质意义。理解较为简 ...
容灾、当tair挂了后,没5s自动尝试一次
private boolean readFromTair() {
if (errorCount>1000) { //tair down了
if (lastReadTairTime > 5) {
errorCount--; //这里-1主要是readFromTair可能会+1,为了保证计数准确
readFromTair();
}
return false;
} else {
boolean isTairReadSucess = 读tair核心逻辑;
if (isTairReadSucess ...
前段时间,夜晚突然收到报警,紧急上线排查。由于dba操作不当,大片数据回滚,发生锁表的情况,请求返回时间过长,使得系统打印出大量的RejectedExecutionException的异常。定位到代码片段类似:
ThreadPoolExecutor workers = new ThreadPo ...
二叉树:
一个根节点,每个节点下挂着最多2个子节点。、
概念:
度:结点的分支数,二叉树度为2。
深度:树的层次。
二叉排序树:
二叉树的基础上,每个节点上都有一个数字,节点上的数字都比右节点上的大。
应用场景: ...
一、声明式通知
1、@Before
2、@AfterReturning
a、要获得目标方法的返回值,必须使用returning属性,在@AfterReturning的参数上设置(参数名的绑定),表示向下面方法的哪个参数传入目标方法的返回值。(声明式通知)
b、例如:
@AfterReturning(value="execution(* doSome(..))", returning="rtnValue")
public void action(int rtnValue) {
System.out.printl ...
- 2009-03-21 20:54
- 浏览 3101
- 评论(1)