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.
mabbs/_posts/2019-07-15-encmail.md

24 lines
2.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
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`里,以减小私钥泄露的危险。
今天就先到这里吧!