web文件在线加密
前言
这个是本站作者自主研发,开源地址:在线文件加密
在线体验地址 :点击这里可以快速体验
(大多是是屎山代码,大佬勿喷)
- 更新 现在已经更新,目前添加了最新版本请 点击 “main” 然后选择 “ fghdz-patch-1” 获取最新的代码
- 目前最新版本 新版本添加了 : 文件批量下载 功能
免责申明:
- 1. 本程序仅用于学习研究,请勿加密重要机密文件,忘记密码可能无法找回
- 2. 本程序使用的UI文案,如:“文件越大,本站偷的越欢”、“反手就卖了用户的文件,还把用户密码给偷了拿去撞库” 这些都是调侃性,幽默等词语,本代码没有偷任何用户的文件,不信可以查看源代码,如果你不喜欢这些词语,你可以随时更换成正经的。
- 3. 本程序是开源代码,意味着加解密的流程完成公开,但是只要用户密码是强密码,那么是相对安全的,如果你想私人加密,你可以修改本代码的 迭代次数 或者 盐 等信息。
- 4. 而且由于是开源代码,可能代码经过他人的修改变得更安全或者更危险,请认准本仓库,其他地方出现的均为假冒
功能介绍
web文件在线加密是一个基于网页的应用程序,它允许用户在浏览器中对本地文件进行加密和解密操作。主要功能特性如下:
- 便捷文件处理:支持用户通过简单的操作选择本地文件,无论是单个文件还是多个文件,都能轻松进行加密或解密。
- 加密保护:使用先进的加密算法对文件进行加密,将文件转换为
.lmdx
格式,有效保护文件内容不被未经授权的访问。 - 解密恢复:针对已加密的
.lmdx
文件,用户输入正确密码后可将其解密还原为原始文件。 - 本地安全处理:所有文件的加密和解密过程都在本地浏览器中完成,无需将文件上传至服务器,最大程度保障用户数据的隐私和安全。
- 盐与迭代增强:在加密过程中使用了盐(salt)和迭代(iteration)技术,进一步增强了加密的安全性。
技术分析
前端框架与样式
- HTML/CSS:作为基础的网页构建技术,负责搭建整个应用的页面结构和视觉样式。
- Tailwind CSS:引入了 Tailwind CSS 框架,利用其丰富的实用类,快速实现了响应式布局和美观的界面设计。例如在 {insert\_element\_0\_YGluZGV4Lmh0bWxg} 中,通过如
bg-gradient-to-br
、rounded-3xl
等类名来定义元素的样式。 - Font Awesome:集成了 Font Awesome 图标库,为界面添加了直观且丰富的图标,提升了用户体验。
加密算法
- SHA - 256:这是一种广泛使用的哈希算法,在本应用里用于密码处理环节。通过对用户输入的密码进行哈希运算,增加密码的安全性。哈希算法具有单向性,无法从哈希值反推出原始密码。
- AES - GCM:推测实际的文件加密和解密采用了 AES - GCM 算法。AES(Advanced Encryption Standard)是一种对称加密算法,GCM(Galois/Counter Mode)是与之结合的认证加密模式,它不仅能保证数据的保密性,还能确保数据的完整性和提供认证功能。
JavaScript 功能实现
- 文件上传交互:借助 JavaScript 监听文件选择变化和拖放事件,实现了灵活的文件上传方式。用户既可以点击选择文件按钮,也能直接将文件拖放到指定区域来选择文件。
- 表单操作处理:监听表单提交事件,当用户提交表单时,阻止默认的表单提交行为,并依据用户选择的操作类型(加密或解密)执行相应的处理流程。
- 动态界面交互:实现了按钮文本的动态更新、错误信息的显示与隐藏、进度条的更新等界面交互效果,增强了用户与应用之间的交互体验。
逻辑
- 1. 开始
- 2. 用户输入加密密码
- 3. 用户上传原始文件
- 4. 把用户密码通过 SHA - 256 生成密钥
- 5. 通过 AES-GCM 加密用户文件
- 6. 生成链接供用户下载
- 7. 用户上传了加密文件
- 8. 用户输入了解密密码
- 9. 把用户密码通过SHA - 256生成密钥
- 10. 和加密文件和密钥进行匹配
- 11. 成功后通过 AES-GCM 解密
- 12. 生成链接供用户下载
联系我们
如有问题或建议,请通过 fghdlz@outlook.com 联系。
好像加密超过3G的文件会报错![$[经典表情]::(流泪)](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
@大富翁
是的,我没有做多线程优化,也没有程序延时,有空再做喵![$[阿鲁表情]::(阴暗)](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)