此內容未以你的語言提供。 以下為簡體中文。
为知笔记(Wiz)的文档存储,是采用zip方式压缩的html文件,您可以使用任意的解压缩软件打开,例如WizZip, WinRAR或者7z。
为知笔记提供了文档加密的功能,使用加密功能后,为知笔记会把存储的zip数据采用RSA+AES方式重新加密,从而保证数据内容的安全。
要给为知笔记文档加密,用户必须申请一个证书,证书就是RSA算法的N, e, d三个数据。其中公钥用于加密,默认保存在Wiz数据库里面,私钥用于解密,使用用户提供的密码作为key,采用AES算法进行加密后保存。用户可以选择将证书保存到数据库。用户可以选择备份成文件,或者备份到服务器(加密后的证书)。
注意:为知笔记里面不保存任何用户证书的密码,因此用户如果丢失了证书的密码,将无法解密任何文档。
为知笔记文档加密,采用了RSA和AES混合加密的方式。加密流程如下:
从上面的步骤可以看到,每一个加密ziw文档的密钥,都是随机的。ziw文档的安全性,取决于证书的私钥的安全性,也就是用户的证书以及证书的密码。
加密的ziw文件,有一个文件头,记录了加密文档版本,算法,RSA密钥(密文)等数据,定义如下:
#pragma pack(1)
#define WIZKMZIWFILE_SIGN_LENGTH 4
#define WIZKMZIWFILE_KEY_LENGTH 128
#define WIZKMZIWFILE_RESERVED_LENGTH 16
struct WIZKMZIWHEADER
{
char szSign[4];
UINT nVersion;
UINT nKeyLength;
BYTE szEncryptedKey[WIZKMZIWFILE_KEY_LENGTH];
BYTE szReserved[WIZKMZIWFILE_RESERVED_LENGTH];
};
#pragma pack()
其中szSign是一个四个字节的文档类型标记,可能的值为:
ZIWR:RSA和AES混合算法加密的文档。
ZIWA:AES算法加密的文档。概算法目前未实现。
nVersion:加密文档的版本,目前为1。
nKeyLength:AES算法加密后的密钥的长度。不超过128个字节
szEncryptedKey:AES算法加密后的密钥数据。
szReserved:保留数据。全部为0
文档加密后的数据,被保存在文件头后面。
Wiz加密使用的算法库,是著名的加密算法库Crypto++® Library。
为知笔记加密的安全性,取决于证书和用于加密证书的密码。要解密一个文档,必须提供证书以及用于加密证书的密码,二者缺一不可。因此我们建议您在初始化加密的时候,尽量设置一个比较复杂的证书密码,同时将该证书密码记在纸上,保存在安全的地方。
另外,为了方便多台电脑使用加密功能,您可以选择将证书备份到服务器上面。因为证书的密钥被您设置的密码加密了,因此您不用担心证书会被盗用。