11 恺风

尚未进行身份认证

我思故我在,如果一个人无法独立思考,即使熟习各种工具,实质只是工具的一部分,永远无法创造工具。

等级
TA的排名 63

RSA算法和证明

1977 年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼 (Leonard Adleman)一起提出,因此名为 RSA 算法。RSA 算法中公私钥的产生1 随机选择两个不相等的质数 p 和 q p = 11, q = 29 2 计算 p 和 q 的乘积 n(明文小于 n) n = p× q = 11 * 29 ...

2019-11-08 19:42:02

中台的“酒”瓶

酒瓶和水中台的概念在今年突然很火,持续地火。产品不蹭一下中台的热点,自己都觉得不好意思。于是乎,看到了高矮肥瘦的各式各样的瓶子,都说是中台的酒瓶,里面有新瓶装旧酒的,更多的是装些果汁,矿泉水,不少的直接装自来水,甚至只装空气。只要不打开看,放在架子上,装扮得五光十色,十分喜庆。需求是第一导向中台是个概念,是个名词,尚无权威定义,本文也不打算讨论何为中台。下定义的人多了,但被认可要靠权威...

2019-09-29 15:45:18

【杂谈】国密2 vs 国密4,关公战秦琼

项目最近有人反映过来,说那谁谁谁说现在不要用国密2,过时了,要用国密4,反正就是看不上国密2之类云云。国密1、国密2、国密3、国密4,当中的1,2,3,4并不是安全等级,可能只是个先后顺序。 国密1是对称加密算法,类比我们常用的AEC。 国密2采用的是椭圆曲线,可以用于签名,协商密钥。很多证书的签名就是采用ECDSA,互联网上常用的协商密钥机制位RAS,椭圆算法的ECDH于此类...

2019-10-16 14:52:08

【杂谈】对代码的一些建议:从单模块到多模块

对于产品,一般来讲,从单模块,到负载均衡的多模块,最后到有服务治理的规模化集群(例如微服务),逐步发展和演进。本文并不打算涉及框架或者架构,也不讲什么大道理,仅从代码编写的角度,看看开发人员需要注意什么。单模块开发的一些注意事项单模块并不是指单体方式,根据功能进行模块划分,每个模块在生产环境中是单模块运行(主备方式)。单模块阶段开发人员仍是有要求,在我的实践中,从code review看,...

2019-05-16 17:21:08

【杂谈】学习一直在路上

博客已经有一段时间没有更新。江湖依旧在,心态有些懈怠,需要收拾心情,我要好好看风景。工作近来相对轻松,也就有了更多学习的时间。虽然博客停更了一段时间,但是在我自己的mediawiki上仍在耕耘,只是大多是付费课程的笔记,放在网上就不厚道,不亦乐乎之后,博客也就暂时放下。推荐一下极客时间,都是一些资深的大牛,讲的东西系统、清晰,很多前沿技术,发展很快,版本迭代快,没有什么经典书籍,需要频繁在...

2019-04-21 17:17:23

Java for Web学习笔记(一四二)Spring security准备(3)初窥

了解Spring Security的基本知识完全J2EE的web container也能提供完整的安全框架,但tomcat不是。Spring Security可以使用JDBC,或者我们的服务或仓库来认证用户,也提供了内置的对微软Active Derectory,Jasig的CAS(Central Authentication Service),JAAS(Java Authentication ...

2018-09-27 11:45:34

Java for Web学习笔记(一四一)Spring security准备(2)授权

访问的范围和权限属于授权。Principals和Identities就Java而言,很方便利用java.security.Principal。Principal至少会包含已被认证的用户identity,例如用户名,还可能有其他信息。此外还可以保护用户的授权信息,这些信息的表述应采用常量,例如枚举或者有限的字符串,否者过多的授权会对内存有影响,进而影响性能。Roles,Groups,Ac...

2018-09-27 11:44:15

Java for Web学习笔记(一四十)Spring security准备(1)认证

匿名认证匿名认证有多种方式:不是通过你的ID进行认证,例如通过HTTP的session ID,实际是认证你曾经访问。 作为其他认证缺失的情况:,例如可以匿名登录论坛进行浏览。当让如果要做更多的事情,通常需要进行身份认证。密码认证密码认证古来有之。有密码和反密码,例如空降兵密码为flash,地面部队为thunder,避免抢先问密码,导致密码泄漏。这有点类似https在使用前,用户先检...

2018-09-27 11:39:54

Java for Web学习笔记(一三九)篇外之数据库的ACID和JPA(3)隔离性

SQL中的Isolation实验SQL语句案例:-- SELECT @@session.tx_isolation; 查看当前的isolationSET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;-- SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;-- SE...

2018-09-27 11:24:56

Java for Web学习笔记(一三八)篇外之数据库的ACID和JPA(2)JPA

在测试中,我们发现在一个JPA事务中:Spring Data的写SQL是在最后commit前发出,这最大程度地缩短了写操作和commit之间的时间。 对相同的ID的读,JPA只从数据库中读取一次。 从数据库中获取entity,修改entity的数据,即使最后没有执行save,在commit之前,发送update。下面是其中一个测试小例子:@Transactionalpublic ...

2018-09-27 11:15:07

Java for Web学习笔记(一三七)篇外之数据库的ACID和JPA(1)原子性

ACID大家都听过,看似也了解,但是在实际的项目中,发现不是所有人都正确理解。所以想谈一下当中容易忽略或者错误理解的地方。现在的开发语言和开发工具都很丰富,如果这要一一了解,也真是耗不起,但是有些是工具,知道怎么用就行,有些是基础知识,需要掌握。ACID就是基础知识,只有真正了解,才能在代码中进行合适的选择,特别是在异常处理和并发处理。在这个小系列中,基于下面的表格CREATE TABL...

2018-09-27 11:08:14

Java for Web学习笔记(一三六)映射(12)还谈FetchType.LAZY

说明在前面的学习中(见Java for Web学习笔记(一二七)映射(3)OneToOne),加上fetch = FetchType.LAZY的属性是集合或者Map。反映在SQL中,就是读取其他表格的信息(无论是通过join还是什么)。例如前面学习的@OneToMany、@ElementCollection。就单个表格而言,一次读取所有的列的数据,实际上在MySQL中,即使我们只是SELECT...

2018-08-24 16:23:03

Java for Web学习笔记(一三五)映射(11)代码触发器

说明数据库是有触发器Trigger。但我们希望业务逻辑能从底层的具体数据存储抽象出来(有需要时可以更好存储机制),也就是要在应用中编写trigger,而不是依赖底层数据库来实现。Entity内部触发器我们随便挑选以前的某个entity,在里面加入触发器。@Entitypublic class Person { ... ... // 【触发器说明】 //1...

2018-08-15 16:49:15

Java for Web学习笔记(一三四)映射(10)@SecondaryTables

说明@SecondaryTables在实际中很少使用。相当于是将一个entity的基础属性(不是collection)拆分到不同表中存放。这在表格设计中是不合理的。常用于遗留数据库,以及表格列太多查出数据库供应商的限制。和OneToOne不同,没有使用外键进行表格关联,而是两个表的主键代表同样含义。小例子数据库表格CREATE TABLE Employee ( Employe...

2018-08-09 17:12:10

Java for Web学习笔记(一三三)映射(9)中文输入

这个小例子中,我们已经:整个项目在eclipse中指定采用UTF-8 在web.xml中对jsp的配置已经设置了<page-encoding>UTF-8</page-encoding> 在jsp文件中,已经给出了<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">但是我们...

2018-08-08 15:55:50

Java for Web学习笔记(一三二)映射(8)@ElementCollection

说明在前面我们学习了OneToOne、OneToMany、ManyToOne,将数据库中不同表格的关联转换为spring中不同entity的关联。但是在不少场景中,我们希望在一个entity的视图中同查看到这几个表的信息,而无需通过entity之间的关联。在这个小例子中,我们还将学习和讨论到:表格有Employee,Employee_Address中存放员工多个地址,Employee_...

2018-08-08 15:52:33

Java for Web学习笔记(一三一)映射(7)entity的抽象和继承

Mapped superclass我们通过@javax.persistence.MappedSuperclass定义一个Mapped superclass,定义表格的通用属性,提供给Entity继承。它和Entity的属性映射是一样,但需注意:entity可以重写@Column。类标记为 @AttributeOverride或@AttributeOverrides,在里面给出需要overr...

2018-08-03 17:25:11

Java for Web学习笔记(一三十)映射(6)@Version

@VersionJPA可以将entity的某个属性(只允许一个)标记为@javax.persistence.Version。这个属性可以是整形和java.sql.Timestamp。如果是整形,Version从0开始,每次update,每次自动+1;如果是Timestamp,就是每次更新为now()。如果数据没有实际变化,version不会变更。小例子代码CREATE TABLE...

2018-08-02 14:38:05

Java for Web学习笔记(一二九)映射(5)ManyToMany

ManyToMany需要中间表格。小例子一本书可以有N个作者,一个作者可以有N本书。CREATE TABLE `Book` ( `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, `BookName` varchar(50) COLLATE utf8_unicode_ci NOT NULL) ENG...

2018-08-01 11:37:21

Java for Web学习笔记(一二八)映射(4)OneToMany和ManyToOne

OneToMany和ManyToOne是更为常见的例子。如果A和B的关系是OneToMany,则B和A的关系就是ManyToOne。小例子我们继续前面书的例子,增加书评表。一本书可以有多条书评,一条书评对应一本书。CREATE TABLE Book ( Id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, Book...

2018-07-31 14:17:54

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。