You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
---
|
|
|
|
|
layout: post
|
|
|
|
|
title: EncMail-Project Part 1 - 准备阶段
|
|
|
|
|
tags: [分布式, 加密, 邮件, 计划]
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
我是不会承认自己咕咕咕的!<!--more-->
|
|
|
|
|
参照:[初计划](/2019/07/02/encmail.html)
|
|
|
|
|
|
|
|
|
|
# 准备的内容
|
|
|
|
|
最终经过多方研究,我打算用[Web Crypto API](https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Crypto_API)作为主要的实现方法。
|
|
|
|
|
不过用这种API的兼容性并不怎么好……我的博客之所以用了各种各样的JS库也是为了兼容性 ~~(是不会写吧233333)~~
|
|
|
|
|
其实主要原因是因为我在网上搜不到哪个JS库能生成密钥对……之前有看到过有一个名叫jsencrypt的库,可惜只能加解密,不能生成密钥对……
|
|
|
|
|
说实话我从来都没有用过WebAPI,所以还得好好看看文档。但是这个破烂文档连例子都没有,这让人很难办,搜也搜不到有用的内容,而且我的英语并不算好,也不太习惯上[Stack Overflow](https://stackoverflow.com/) ~~(不行,我要把锅推给某国的网络审查)~~ 。正是如此,这个项目制作起来可能会相当花时间。
|
|
|
|
|
另外界面我打算用MDUI,那个文档看起来还挺简单。本来我没打算做一个好看的页面,就像之前制作的[Iwara Downloader](/2019/04/13/iwara.html)一样,打算套个表格完事。但是既然这个UI看起来挺简单,那就试试这个吧,反正我也不考虑兼容性问题了,WebAPI都用上了,再加一个这个也不算什么吧。
|
|
|
|
|
|
|
|
|
|
# 对计划的补充
|
|
|
|
|
计划的名称我打算命名为EncMail-Project ~~(看起来有点俗……)~~ ,不过这都不重要。
|
|
|
|
|
关于登录方面,我后来又想了想,没有人会记私钥的,所以为了方便使用,我打算通过AES加密私钥,和公钥一起上传到服务器上保存。登录时把加密的私钥和被公钥加密的令牌下载下来,然后输入密码解密获得私钥并解密令牌。
|
|
|
|
|
而之前想到的公钥被修改的问题,我想了想,那还是加上指纹吧(就是Hash啦),用SHA-256算法算出公钥的指纹,然后发送者在发送时自己对照一下就可以了(好像是`SubtleCrypto.digest()`?emmmm……这个文档没有翻译……)。
|
|
|
|
|
另外为了安全,私钥我打算存到`sessionStorage`里,以减小私钥泄露的危险。
|
|
|
|
|
|
|
|
|
|
今天就先到这里吧!
|