1
0
mirror of https://gitee.com/tawords/tawords-docs synced 2025-01-25 18:20:28 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee

较大变动

This commit is contained in:
程序员小墨 2021-08-07 15:56:20 +08:00
parent be48289d54
commit ff1500247c
56 changed files with 574 additions and 92 deletions

View File

@ -1,11 +1,11 @@
<img height="180px" style="border-radius: 5%" src="static/images/coverimg.png">
# 背Ta单词官方文档
<h1>背Ta单词官方文档</h1>
- 本文档是“背Ta单词”开源项目的官方文档旨在为大家提供详细的部署安装及应用开发指南。
### 【温馨提示】本文档目前正处在撰写阶段,部分内容还不准确和完整,我们正在加紧撰写。
<h3>【温馨提示】本文档目前正处在撰写阶段,部分内容还不准确和完整,我们正在加紧撰写。</h3>
[![Stars](https://gitee.com/only4/recite-words/badge/star.svg?theme=dark)](https://gitee.com/only4/recite-words/stargazers)
[![Forks](https://gitee.com/only4/recite-words/badge/fork.svg?theme=dark)](https://gitee.com/only4/recite-words/members)

View File

@ -1,5 +1,14 @@
- [主页](https://www.reciteword.com/ "背Ta单词官方网站")
- 文档
- [快速开始](/manual/start/introduction)
- [使用说明](/manual/instructions/start-using)
- [接口文档](/manual/api/introduction)
- [代码规范](/manual/standard)
- [应用开发文档](/manual/app-developer/start)
- [关于](/manual/about/)
- [版本信息](/manual/instructions/start-using)
- [应用中心(暂未上线)](https:/// "应用中心")
- [交流中心(暂未上线)](https:/// "交流中心")

View File

@ -26,15 +26,33 @@
- [通知](/manual/api/frontend-interface/Notice)
- [4. 后端Api接口待完善](/manual/api/backend-interface)
- [5. 接口模板](/manual/api/interface-template)
-
- **四、应用开发文档**
<!-- - [1. 简介](/manual/app-developer/introduction)
- [2. 全局状态码](/manual/app-developer/status-code)
- 3\. 前端Api接口撰写中
- [4. 后端Api接口待完善](/manual/app-developer/backend-interface)
- [5. 接口模板](/manual/app-developer/interface-template)
- [1. 简介](/manual/app-developer/introduction) -->
- **四、代码规范**
- [【TODO】](/manual/standard/xxx)
- [TODO](/manual/todo)
- [test](/manual/test)
- **五、应用开发文档**
- [1. 开始](/manual/app-developer/start)
- [2. 文件及代码结构(待完善)](/manual/app-developer/file-structure)
- [3. 插件开发(待完善)](/manual/app-developer/plugin/overview)
- [5. 主题开发(待完善)](/manual/app-developer/theme/overview)
- [6. 应用发布与更新](/manual/app-developer/release-and-update)
- [7. 下架应用(待完善)](/manual/app-developer/downshelf)
- **六、关于**
- [发行版本](/manual/about/version/release)
- [更新日志](/manual/about/version/changelog)
- [联系我们](/manual/about/contact)
- [开发团队 & 参与贡献者名单](/manual/about/contributors)
- [特别鸣谢](/manual/about/acknowledgement)
- [免责声明](/manual/about/disclaimer)
- [使用的开源组件列表](/manual/about/open-source-project)
- [关于我们](/manual/about/about-us)
- [开源许可证GPL-3.0](/manual/about/LICENSE/GPL-3.0)
- [更好的理解 GPL-3.0 开源许可证](/manual/about/LICENSE/have-a-better-understanding-of-GPL-3.0)
- [使用的第三方接口](/manual/about/third-party-interface)
- **七、内部开发文档**
- **八、其他**
- [TODO](/manual/todo)
- [test](/manual/test)

View File

@ -14,11 +14,44 @@
<style>
/* 首页封面背景渐变色样式 */
.cover.show { background: linear-gradient(to left bottom, hsl(189, 100%, 85%) 0%,hsl(232, 100%, 85%) 100%)!important; }
.cover.show {
background: linear-gradient(to left bottom, hsl(189, 100%, 85%) 0%, hsl(232, 100%, 85%) 100%) !important;
}
/* 左侧侧边栏下面多留出一些空白 */
.sidebar-nav { padding-bottom: 60vh!important; }
.sidebar-nav {
padding-bottom: 80vh !important;
}
/* 左侧侧边栏缩进更明显一些 */
.sidebar ul { margin-left: 23px!important; }
.sidebar ul {
margin-left: 23px !important;
}
/* */
@media screen and (max-width: 768px) {
.sidebar-toggle {
/* position: relative; */
padding: 10px;
/* width: auto; */
bottom: auto;
top: 0;
}
.sidebar {
margin-top: 38px;
}
/* 手机屏幕不显示导航栏 */
nav {
display: none;
}
}
.sidebar-toggle {
width: auto;
}
</style>
</head>
<body>
@ -36,6 +69,8 @@
// 显示导航栏
loadNavbar: true,
maxLevel: 6, // 默认值: 6 默认情况下会抓取文档中所有标题渲染成目录,可配置最大支持渲染的标题层级。
subMaxLevel: 3, // 最大支持渲染的标题层级
// 切换页面后自动跳转到页面顶部
@ -44,7 +79,7 @@
// 设置封面
coverpage: true,
// logo
// 文档左上角logo
// logo: 'img/logo.png',
// 主题色
@ -60,7 +95,7 @@
executeScript: true,
// 小屏设备下合并导航栏到侧边栏。
mergeNavbar: true,
// mergeNavbar: true,
// 404页
notFoundPage: true,
@ -75,7 +110,7 @@
search: {
maxAge: 1000, // 86400000, // 过期时间,单位毫秒,默认一天
paths: [],
placeholder: '搜索',
placeholder: ' 在文档中搜索... ',
noData: '没有找到结果',
depth: 6, // 搜索标题的最大层级, 1 - 6
hideOtherSidebarContent: true, // 是否隐藏其他侧边栏内容
@ -96,8 +131,47 @@
crossChapterText: true,
},
// plugins: [
// // livere评论https://livere.com/insight/communite
plugins: [
// 添加文档修改时间
function(hook, vm) { // auto_add_update_time_plugin
hook.beforeEach(function(content) {
var updateHTML = '<p align="right" style="opacity: 0.6;">更新时间:{docsify-updated}</p>'
content = content + updateHTML
return content;
});
},
// 左侧菜单滚动到激活的位置
function(hook, vm) {
scrollToHandler = function() {
try {
let activeMenuItem = document.querySelector("ul > li.active")
let sidebar = document.querySelector("aside.sidebar")
let activeMenuItemTop = activeMenuItem.getBoundingClientRect().top
let sidebarHeight = sidebar.getBoundingClientRect().height
let scrollto = sidebar.scrollTop + activeMenuItemTop - sidebarHeight * (1 -
0.618) /* 黄金分割比 */
// sidebar.scrollTo(0, scrollto)
sidebar.scrollTo({
top: scrollto,
behavior: "smooth"
})
// console.log("\n\n")
// console.log("activeMenuItem", activeMenuItem)
// console.log("sidebar", sidebar)
// console.log("activeMenuItemTop", activeMenuItemTop)
// console.log("sidebarHeight", sidebarHeight)
// console.log("sidebar.scrollTop", sidebar.scrollTop)
// console.log("scrollto", scrollto)
} catch (err) {
console.log(err)
}
}
hook.doneEach(scrollToHandler);
},
// // // livere评论https://livere.com/insight/communite
// function(hook, vm) {
// // load livere
// hook.beforeEach(function(content) {
@ -119,7 +193,7 @@
// })(document, 'script');
// });
// },
// ],
],
// docsify-dark-mode
// darkMode: {
@ -135,16 +209,15 @@
// }
// },
// 页脚 load from _footer.md
loadFooter: true,
// 阅读进度条
progress: {
position: "top", // 'top' / 'bottom'
color: "var(--theme-color,#42b983)",
height: "3px",
},
// // 阅读进度条
// progress: {
// position: "top", // 'top' / 'bottom'
// color: "var(--theme-color,#42b983)",
// height: "3px",
// },
// drawio You just have to copy it to Your own html File
markdown: {
@ -168,21 +241,6 @@
<!-- Docsify v4 -->
<script src="static/docsify/docsify@4.js"></script>
<!-- 修改时间 -->
<script>
// Docsify plugin functions
function auto_add_update_time_plugin(hook, vm) {
hook.beforeEach(function(content) {
var updateHTML = "<p align=\"right\" style=\"opacity: .6;\">更新时间:{docsify-updated}</p>\n\n"
content = content + updateHTML
return content;
});
}
// Docsify plugin
window.$docsify.plugins = [].concat(auto_add_update_time_plugin, window.$docsify.plugins);
</script>
<!-- plugins -->
<!-- 搜索 -->
<!-- <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script> -->
@ -248,9 +306,8 @@
<!-- <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify-dark-mode@latest/dist/style.min.css" />
<script src="//cdn.jsdelivr.net/npm/docsify-dark-mode@latest/dist/index.min.js"></script> -->
<!-- 阅读进度条插件 -->
<!-- 阅读进度条插件(与滚动右侧文档左侧对应子目录激活有冲突) -->
<!-- <script src="https://cdn.jsdelivr.net/npm/docsify-progress@latest/dist/progress.min.js"></script> -->
<script src="static/docsify/lib/plugins/docsify-progress@1.0.3/progress.js"></script>
<!-- <script src="static/docsify/lib/plugins/docsify-progress@1.0.3/progress.js"></script> -->
</body>
</html>

View File

@ -1,3 +0,0 @@
### 使用第三方接口
有道翻译单词读音接口(感谢有道的免费服务!)

View File

@ -1,4 +1,3 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
@ -653,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
背Ta单词 Copyright (C) 2021 背Ta单词团队
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

View File

@ -0,0 +1,18 @@
<style>
pre {
max-width:660px;
max-width:900px;
margin: auto !important;
}
@media screen and (min-width: 1200px) {
pre > * {
font-size: .9rem !important;
}
}
@media screen and (min-width: 1400px) {
pre > * {
font-size: 1.1rem !important;
}
}
</style>
[GPL-3.0 LICENSE](./GPL-3.0%20LICENSE ':include :type=code text')

View File

@ -1,5 +1,5 @@
> **项目许可证以项目中LINCENSE文件为准本页内容仅作为参考**
> 本页内容目的是让您更加了解 `GPL-3.0 许可证` 的相关内容,不具有法律效应,其中中文版本是来源于网络的非正式翻译版本。
!> **项目许可证以项目中LICENSE文件为准本页内容仅作为参考,不具有法律效应**
> 本页内容旨在让您更加了解 `GPL-3.0 许可证` 的相关内容,其中中文版本是来源于网络的非正式翻译版本。
GNU General Public License v3.0

View File

@ -0,0 +1,2 @@
### (待完善)

View File

@ -0,0 +1,3 @@
### 使用第三方接口
有道翻译:单词读音接口(感谢有道的免费服务!)

View File

@ -0,0 +1,2 @@
## 申请下架应用(待完善)

View File

@ -0,0 +1,80 @@
## 下载应用模板
| 主题模板 | 插件模板 |
| ---------------------- | ---------------------- |
| [点击下载]()【待完善】 | [点击下载]()【待完善】 |
## 文件结构
```conf
/path/system/theme/themeName
screenshot.png [必需]缩略图500×400像素
intro.json [必需]自述文件【该文件由系统生成】;
README.md [不需要]应用开发模板说明文件,可以删除。
—————————————— 下面的待更新 ——————————————
main.php [可选]应用内置管理页,在创建主题时填写才会生成;
include.php [可选]应用嵌入页,在创建主题时填写才会生成;
include [可选]主题自带「文件模块」,使用{module:abc}「嵌入调用」该目录下的abc.php文件
script [可选]JS目录
style [必需]样式目录, 内存样式表及所需图片;
style.css [必需]不限于这个文件名,一套主题也可以拥有多个样式(各自独立使用);
css [可选]并不会自动创建用于不应该放在style文件夹中的样式内容
template 用于存放模板文件;建议优先确立以下 6 个模板文件及内容;
index.php 首页及列表页
single.php 文章页(单页)
search.php 搜索结果页不存在时使用index.php
header.php 公共头部文件
footer.php 公共尾部文件
404.php 建议设置
```
## 应用配置文件
### intro.json
> 注意建议使用工具生成或修改该文件。如果手动修改特殊字符或符号可能会导致JSON解析失败。
>
> [点击使用工具]()【待完善】
```
{
"plug": {
"plugId": "应用Id [必填]",
"name": "应用名称 [必填]",
"description": "应用简介 [必填]",
"pubDate": "发布日期格式2022-01-01 [必填]",
"update": "升级时间格式2022-01-01 [必填]",
"version": "版本号格式“1.0.0”或“1.0”。请严格按照格式填写,以免用户无法正常升级 [必填]",
"adapted": "最低兼容的系统版本数字代号(可在文档 关于 版本信息 发行版本 找到),此处请填写数字,不要填写字符串 [必填]",
"screenShot": "./preview.png 主题的缩略图所在相对路径 [必填]"
},
"author": {
"authorId": "作者Id后台创建应用时生成 [必填]",
"name": "作者姓名 [必填]",
"email": "作者邮箱 [选填]",
"url": "作者网站 [选填]"
}
}
```
| 字段 | 说明 / 格式 | 是否必填 | intro.json |
| -------- | -------------- | ---------------------------- | ---------------------------- |
| 应用Id | 创建应用时生成 | 必填 | plug.plugId |
| 应用名称 | | 必填 | plug.name |
| 应用简介 | | | plug.description |
| | | | plug.update |
| | | | plug.version |
| | | | plug.adapted |
| | | | plug.screenShot |
| | | | plug. |
| | | | |

View File

@ -0,0 +1 @@
### (待完善)

View File

@ -0,0 +1,99 @@
## 发布应用
> 在编写并测试好代码后,可以将应用上传至应用中心进行审核。审核通过后即可发布。
>
> 应用期将视应用中心实际情况适时开发上线。
以下是发布应用的流程。
### 1. 成为开发者
成为开发者的条件:①有开发者账号;②绑定手机号;③等待通过审核
首先,你需要注册一个开发者应用账号。
然后,在用户中心绑定您的手机号,并完善账户信息。
最后,点击提交审核按钮,等待审核通过。审核期间,您可以上传应用以及配置相关信息,也可同时提交应用审核,但只有审核通过后,你的应用才可以发布至应用中心。
> **请注意,账号一旦注册,用户名等账户重要信息暂时不可修改。所以注册账号时一定要想好。**
> 根据《互联网用户账号名称管理规定》等相关规定,您只有绑定手机号才可以进行后续操作。
### 2. 在后台创建一个应用
创建应用后,系统会为你生成一个**应用ID**`plugId`)和**应用密钥**`plugSecret`)。`plugSecret`将只显示一次,请保存好这两个密钥,如果您忘记了,则需要重置`plugSecret`
- `plugId`用于唯一标识应用。在用户下载应用,或者更新应用的时候会用到。该值由系统生成,无法修改。
- `plugSecret`的用处还没想好,但是是有用的【待更新】
> **请一定保管好plugSecret不要泄露给任何人如果已发生泄露请立即重置plugSecret**
### 3. 上传你的应用
根据页面提示上传您的应用。
上传应用后,应用信息将默认使用`intro.json`文件中的信息。如需修改,可修改`intro.json`文件,然后重新上传。
> `intro.json`编写规范请[查看这里]()【待完善】
- 应用发布日期(与配置文件中`pubDate`保持一致,且不能填写还未到的日期,一旦首次审核通过,将不能更改)
- 选择你的应用风格
-
- 上传应用缩略图
-
### 4. 阅读并同意应用中心相关条款
在认真阅读并同意应用中心服务协议、隐私政策等条款内容后,勾选“我已阅读并同意上述条款”,然后点击下一步。
### 5. 提交审核
确认应用信息填写无误后,即可提交审核。
> 第一次审核通过日期显示为<u>应用发布日期</u>,开发者无法手动修改。
若审核未通过,您可以根据提示信息修改对应信息,并再次提交。
> 请注意,若审核未通过,请修改后再次提交。请不要不经修改反复提交。否则您的账号将可能受到相应处罚,甚至封号。
## 应用更新
主题更新时,你需要做以下几步:
上传新的主题包,填写更新说明,并提交审核
### 1.上传新的应用包
登录后台,选择账号中需要更新的应用,然后点击修改。
### 2. 填写更新说明
上传应用包后,填写版本更新说明。
如果需要修改应用的其他信息,也可在当前页一并更改,更改后提交即可。
### 3. 提交审核
点击提交审核按钮,等待审核结果。

View File

@ -0,0 +1,33 @@
# 创建第一个主题
> 在开始之前你需要掌握HTML CSS JavaScript以及PHP的相关知识。在主题的开发过程中会涉及到这些知识。本文档是基于你已经掌握这些知识的基础上撰写的。
让我们开始吧。
## 应用介绍
- 应用分为主题和插件;
- 可以同时启用多个应用(但是需要考虑是否兼容);
- 按照规范组织目录结构;
- 在后台统一安装、删除、启用、关闭;
- 「自述文件」为 `intro.json`
- 应用放置目录为 `/system`
### 主题
- 主题是网站前端的显示效果,同时只能启用一个主题;
- 通过提供的统一接口获取需要显示的内容;
- 主题可以内置1个应用也可不内置对主题的能力进行扩展启用状态与主题保持一致
- 所在目录为 `/system/plugin`
### 插件
- 主要作用为扩展网站的某项功能;
- 可以同时启用多个应用(但是需要考虑是否兼容);
- 所在目录为 `/system/plugin`

View File

@ -0,0 +1 @@
如果有页面在当前主题中不存在,将使用默认页面展示。

View File

@ -0,0 +1,31 @@
> `@since` 表示从那个版本开始就有这个类/接口/方法
> `@deprecated` 表示不建议使用该类/接口/方法
> `@exception` 标注Runtime异常
> `@throws` 标注非Runtime异常
类、接口
```php
/**
* 〈一句话功能简述〉LogManager 类集中控制对日志读写的操作。
* 〈功能详细描述〉全部为静态变量和静态方法,对外提供统一接口。分配对应日志类型的读写器,读取或写入符合条件的日志纪录。
* @author [作者]张三,李四,王五
* @version [版本号, YYYY-MM-DD]1.2, 2001-03-25
* @see [相关类/方法]LogIteraotor
* @see [相关类/方法]BasicLog
* @since [产品/模块版本]CommonLog1.0
*/
```
方法
```php
/**
* 〈一句话功能简述〉
* 〈功能详细描述〉
* @param [参数1] [参数1说明]
* @param [参数2] [参数2说明]
* @return [返回类型说明]
* @exception/throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
* @deprecated
*/
```

View File

@ -0,0 +1,118 @@
#### 1.在有处理逻辑的代码中源程序有效注释量必须在20以上。
> 说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。
#### 2.文件注释:文件注释写入文件头部。
> 说明:以`/**`开始
示例:
```php
/**
* 文件名:[文件名]
* 作者:〈版权〉
* 描述:〈描述〉
* 修改人:〈修改人〉
* 修改时间YYYY-MM-DD
* 修改内容:〈修改内容〉
*/
```
> 说明:每次修改后在文件头部写明修改信息。
示例:
```php
/**
* 文件名LogManager.java
* 版权Copyright 2000-2001 Huawei Tech. Co. Ltd. All Rights Reserved.
* 描述: WIN V200R002 WEBSMAP 通用日志系统
* 修改人:张三
* 修改时间2001-02-16
* 修改内容:新增
* 修改人:李四
* 修改时间2001-02-26
* 修改内容:。。。。。。
* 修改人:王五
* 修改时间2001-03-25
* 修改内容:。。。。。。
*/
```
#### 3.类和接口的注释:该注释放在 `class` 定义之前,`using``package` 关键字之后。
示例:
```php
package com.websmap.comm;
/**
* 注释内容
*/
public class CommManager
```
#### 4.类和接口的注释内容:类的注释主要是一句话功能简述、功能详细描述,说明:可根据需要列出:版本号、生成日期、作者、内容、功能、与其它类的关系等。
格式:
```php
/**
* 〈一句话功能简述〉
* 〈功能详细描述〉
* @author [作者]
* @version [版本号, YYYY-MM-DD]
* @see [相关类/方法]
* @since [产品/模块版本]
* @deprecated
*/
```
> 说明:描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者和更新版本号和日期,`@since` 表示从那个版本开始就有这个类或者接口,`@deprecated` 表示不建议使用该类或者接口。
示例:
```php
/**
* LogManager 类集中控制对日志读写的操作。
* 全部为静态变量和静态方法,对外提供统一接口。分配对应日志类型的读写器,读取或写入符合条件的日志纪录。
* @author 张三,李四,王五
* @version 1.2, 2001-03-25
* @see LogIteraotor
* @see BasicLog
* @since CommonLog1.0
*/
```
#### 5.类属性、公有和保护方法注释:写在类属性、公有和保护方法上面。用 `// ` 来注释,需要对齐被注释代码。
示例:
```php
// 注释内容
private String logType
```
#### 6.成员变量注释内容:成员变量的意义、目的、功能,可能被用到的地方。用 `// ` 来注释,需要对齐被注释代码。
#### 7.公有和保护方法注释内容:列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、违例等。
格式:
```php
/**
* 〈一句话功能简述〉
* 〈功能详细描述〉
* @param [参数1] [参数1说明]
* @param [参数2] [参数2说明]
* @return [返回类型说明]
* @exception/throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
* @deprecated
*/
```
> 说明:`@since` 表示从那个版本开始就有这个方法;`@exception``throws` 列出可能出现的异常;`@deprecated` 表示不建议使用该方法。
#### 8.对于方法内部用 `throw` 语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。对于非 `RuntimeException` ,即 `throws` 子句声明会抛出的异常,必须在方法的注释中标明。
> 说明:异常注释用 `@exception``@throws` 表示在JavaDoc中两者等价但推荐用 `@exception` 标注Runtime异常`@throws` 标注非Runtime异常。异常的注释必须说明该异常的含义及什么条件下抛出该异常。
#### 9.注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。
#### 10.注释的排版,按照上述示例来展示。
#### 11.注释应该放在被注释的代码前面,分行展示,但中间不留空行。
#### 12.对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。
> 说明:分支语句往往是程序实现某一特定功能的关键。
#### 13.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。
#### 14.注释的内容要清楚、明了,含义准确,防止注释二义性。说明:错误的注释不但无益反而有害。
#### 15.避免在注释中使用缩写,特别是不常用缩写。说明:在使用缩写时或之前,应对缩写进行必要的说明。

View File

@ -0,0 +1,2 @@
为避免重复及便于识别,应用名中不能出现特殊字符,应用识别名须遵循驼峰式书写规范,只能包含`大小写字母`和下划线`_`,应用目录名为应用识别名,定义的所有函数需要以应用识别名加`_`作为前缀;
所有目录及文件名,全部小写,不得出现大写字母;

View File

@ -0,0 +1,13 @@
# 登录:
> 使用`密码加盐`生成不可逆哈希,**他人无法获取密码原文**。
```javascript
md5.hex(pwd + md5.hex(pwd));
```
# 注册:
> 使用密码倒序`Base64`加密,再倒序`Base64`加密,避免密码在网上裸奔。
```javascript
Base64.encode(Base64.encode(pwd.split('').reverse().join('')).split('').reverse().join(''));
```
网站使用`SSL证书`即网址前面的https数据传输`非对称加密`(即使用“公钥”加密,“私钥”解密,公钥大家都知道,私钥仅服务器知道),确保中间人无法获得您的密码。