SSL(Secure Socket Layer)HTTP 协议在传输数据时存在的问题: 窃听风险(eavesdropping):HTTP在网络传输过程中使用的是明文传输,存在传输过程中被窃听的风险。 篡改风险(tampering):传输的数据可能被劫持,存在内容被篡改的风险。 冒充风险(pretending):为了解决 HTTP 协议在传输数据时使用明文的安全性问题,网景公司(Netscape)提出了 SSL 安全套接字协议层的解决方案。SSL(Secure Socket Layer) 安全套接层是介于 HTTP 与 TCP 协议间的一个协议层,是基于 HTTP 标准并对 TCP 传输数据时进行加密,所以 HPPTS 是 HTTP+SSL/TCP 的简称。SSL HandshakeSSL 数字证书数字证书解决了什么问题?由于直接使用公钥存在中间人攻击,因此必须对公钥进行认证,以确保公钥来自目标服务器。与直接使用公钥不同,数字证书中包含了服务器的名称、主机名、公钥、证书签名颁发机构的名称以及来自签名颁发机构的签名。为了得到数字证书,需要通过私钥生成 CSR 证书签名请求文件,...
1. Coding, Coding and Coding为什么我将编码排在第一位?因为它是编程中最困难、最核心的部分。通过编码你才能自己在软件设计、异常处理、多线程上存在的不足,进而针对性的提升各方面的技巧。你不能仅限于理论设计,编码实践对学习编程来说更为重要。不要在解决问题后就此止步,抛弃原先的解决方案,那只不过是一个原型,你的下一个解决方案应该处理你在构建原型过程中所发现的需求缺陷。2. Reading Books编码说起来容易做起来难,好的代码与坏的代码之间存在着巨大的差异,但你如何识别呢?直到你见到了一段好的代码,意识到为什么某段代码写的好,你才能识别他们。这也是阅读能给予我们帮助之处,通常编程书籍的作者都是一些伟大的程序员。他们将自己的经验写入书籍中贡献给读者。我喜欢阅读,特别是《代码简洁之道》这本书对我特别有帮助。通过阅读这本书,我发现自己在编码上存在的问题,并且在以后的编码中时刻遵循书中给出的建议。我的意见是如果你也发现了这样的书籍,那么请深入的理解它。我也建议重复阅读这类经典书籍,时时刻刻去查阅它们。另一本类似的书籍是Joshua Bloch编写的《Effecti...
苹果内购JWS回调解析JWS简介JWS 也就是 Json Web Signature,是构造 JWT 的基础结构(JWT 其实涵盖了 JWS 和 JWE 两类,其中 JWT 的载荷还可以是嵌套的 JWT),包括三部分 JOSE Header、JWS Payload、JWS Signature。这里的 Signature 可以有两种生成方式,一种是标准的签名,使用非对称加密,因为私钥的保密性,能够确认签名的主体,同时能保护完整性;另一种是消息认证码 MAC(Message Authentication Code),使用对称秘钥,该秘钥需要在签发、验证的多个主体间共享,因此无法确认签发的主体,只能起到保护完整性的作用。JWS 最终有两种序列化的表现形式,一种是 JWS Compact Serialization 为一串字符;另一种是 JWS JSON Serialization,是一个标准的 Json 对象,允许为同样的内容生成多个签名/消息认证码。mindmapJWS id[JWS Compact Serialization] id["base64url (utf8(Pro...
安装配置注解 @MapperScan 的作用 同 MapperScannerConfigurer 等价,通过 MapperScannerRegistrar 。MapperScannerRegistrar@Configuration@MapperScan(value = "org.ponderers.totoro.management.dao.d_totoro_management.mapper", sqlSessionFactoryRef="sessionFactory@d_totoro_management")public class MyBatisConfig {}
使用NRM管理NPM镜像源# 安装nrmnpm install -g nrm# 查看源列表nrm ls# 使用淘宝源nrm use taobao# 使用nrm工具切换淘宝源npx nrm use taobao# 如果之后需要切换回官方源可使用npx nrm use npmReact项目初始化# 使用create-react-app新建项目npx create-react-app react-app# react暴露webpack配置文件React暴露webpack配置文件(react-scripts eject)create-react-app创建的项目封装了react内部使用的所有NPM模块,从而使得package.json非常简洁只需要包含业务的依赖。然而,如果你想开始做更复杂的事情,并安装可能与create-react-app正在使用的模块交互的模块,这些新模块需要知道哪些可用,哪些不可用,这意味着你需要让create-react-app非抽象它们在React中安装create-react-app脚手架新建项目,但是新建的项目中没有配置文件。本质上,这就是react-scr...