escape,encodeURI与encodeURIComponent
Javascript中有3个常见的字符编码函数escape,encodeURI和encodeURIComponent,相对应的解码函数为unescape,和。
Javascript中有3个常见的字符编码函数escape,encodeURI和encodeURIComponent,相对应的解码函数为unescape,和。
diff和patch是一对好基友。diff用于产生两个文件(或者说一个文件的两个版本)之间的差异补丁,patch用于应用补丁,从而使文件从一个版本变迁到另一个版本。
除了标准的基本数据类型以外,用户还可以自定义数据类型对象,而且自定义类型对象还可以有方法,构造函数,这实质上就是OOP思想在DBMS里的投射。
LogMiner用于分析REDO日志,既可以分析online redo log file,也可以分析archive redo log file。
想编辑已经存在的PDF文件?如果你使用Libreoffice的话,那么很简单,安装libreoffice-pdfimport包就可以导入PDF进行编辑了,完成后还可以导出PDF。这其实就是安装了libreoffice扩展pdf import。#Debian#
向gerrit服务器提交代码时,发现如下错误:
1 | $ git push origin HEAD:refs/for/devel |
同时gerrit服务器端日志有如下错误:
1 | ERROR com.google.gerrit.sshd.BaseCommand : Internal server error (user admin account 1000000) |
是因为丢失了对象40febad12460dee95f917b2e7a95869e039b1038才提示这些错误。
为什么会丢失对象呢,因为测试的时候直接删除掉了repository,而这个repo还有打开的changes。虽然仓库被移除了,但是gerrit数据库里的记录还在。
已经merged和adandoned对象不会有问题。所以需要将这些orphan关闭掉。
连上gerrit数据库,然后将对应的changes关闭就可以了:
1 | => update changes set open='N',status='A' where ... |
===
[erq]
完全正向加密(PFS,Perfect Forward Secrecy)可以防止追溯攻击。这里讲述了一种实现方式。
Gerrit新建项目的权限继承自内置项目All-Projects,默认的权限已经十分完善,但仍然需要做一些微调来满足实际的需要。
PKI体系是数字证书的基础。
X.509
X.509是国际电联ITU-T的标准,用于规范基于公钥密码体系PKI(public key infrastructure)体系的数字证书管理。其标准主要由RFC5280[1]描述,现在常用的数字证书正是基于X.509标准的。
证书结构
X.509 v3数字证书的结构如下:
1 | Certificate |
数字证书编码和扩展名
数字证书使用文件作为载体,目前有两种编码方法,多种文件扩展名。
编码格式(同时可以作为对应编码格式的扩展名)
DER(Distinguished Encoding Rules)
DER[4]是一种二进制编码格式。可以使用.der作为DER格式编码的数字证书的文件扩展名。通常应该这样说,”我有一个DER编码格式的数字证书”,而不是,”我有一个DER数字证书”。
PEM(Privacy-Enhanced Mail)
PEM采用BASE64文本编码格式,用于不同类型的X.509 v3数字证书。PEM一般以BEGIN XXX开头,以END XXX结束。
比如:
使用PEM格式存储的数字证书:
1 | -----BEGIN CERTIFICATE----- |
使用PEM格式存储的私钥
1 | -----BEGIN PRIVATE KEY----- |
或者
1 | -----BEGIN RSA PRIVATE KEY----- |
使用PEM格式存储的证书请求文件
1 | -----BEGIN CERTIFICATE REQUEST----- |
证书文件扩展名
.crt
CeRTificate的缩写,用于证书文件,可以是DER或者PEM编码格式。
.cer
CERtificate的缩写,用于证书文件,可以是DER或者PEM编码格式。
.key
用于存储私钥或者公钥,可以使DER或者PEM编码格式。
CRT文件和CER文件只有在使用相同编码的时候才可以安全地相互替代。
查看数字证书
PEM编码格式证书
1 | $ openssl x509 -in cert.(pem cer crt) -text -noout |
DER编码格式证书
1 | $ openssl x509 -in cert.(der cer crt) -inform der -text -noout |
数字证书编码格式转换
PEM to DER
1 | $ openssl x509 -in cert.crt -outform der -out cert.der |
DER to PEM
1 | openssl x509 -in cert.crt -inform der -outform pem -out cert.pem |
其他名词
PKCS#11是目前最常用的标准之一。
PKCS#11为加密令牌定义了一组平台无关的API ,如硬件安全模块和智能卡。PKCS#11称为Cyptoki,定义了一套独立于技术的程序设计接口,USBKey安全应用需要实现的接口。由于没有一个真正的标准加密令牌,这个API已经发展成为一个通用的加密令牌的抽象层。 PKCS#11 API定义最常用的加密对象类型(RSA密钥,X.509证书,DES /三重DES密钥等)和所有需要使用的功能,创建/生成,修改和删除这些对象。pkcs#11只提供了接口的定义, 不包括接口的实现,一般接口的实现是由设备提供商提供的,如usbkey的生产厂商会提供 符合PKCS#11接口标准的API的实现。这样你只要通过接口调用API函数即可实现其功能。
References:
[1]rfc5280
[2]X.509
[3]DER vs. CRT vs. CER vs. PEM Certificates and How To Convert Them
[4]DER (Distinguished Encoding Rules) certificate encoding
===
[erq]