Skip to content

Commit

Permalink
发布博客,时间:2024/09/19 21:18:02
Browse files Browse the repository at this point in the history
  • Loading branch information
whp98 committed Sep 19, 2024
1 parent 2fbe4aa commit da67afb
Show file tree
Hide file tree
Showing 44 changed files with 558 additions and 579 deletions.
17 changes: 7 additions & 10 deletions docs/.vitepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -178,22 +178,19 @@ export default {
},
nav: [
{ text: "主页", link: "/" },
{ text: "AI相关", link: "/AI相关/" },
{ text: "后端开发", link: "/后端开发/" },
{ text: "容器技术", link: "/容器技术/" },
{ text: "前端开发", link: "/前端开发/" },
{ text: "安卓开发", link: "/安卓开发/" },
{ text: "兴趣", link: "/兴趣/" },
{ text: "生活记录", link: "/生活记录/" },
{ text: "数据库", link: "/数据库/" },
{ text: "Git", link: "/Git版本管理/" },
{ text: "Git版本管理", link: "/Git版本管理/" },
{ text: "Python语言", link: "/Python语言/" },
{ text: "Rust语言", link: "/Rust语言/" },
{
text: "操作系统",
items: [
{ text: "Linux", link: "/Linux系统/" },
{ text: "Windows", link: "/Windows系统/" },
],
},
{ text: "云服务推广", link: "/赞助和推广/" },
{ text: "Linux", link: "/Linux系统/" },
{ text: "Windows", link: "/Windows系统/" },
{ text: "赞助和推广", link: "/赞助和推广/" },
],
},
transformHtml: (_, id, { pageData }) => {
Expand Down
8 changes: 3 additions & 5 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# 目录
- [生活记录](./生活记录/)
- [社会认知](./社会认知/)
- [嵌入式相关](./嵌入式相关/)
- [容器技术](./容器技术/)
- [后端开发](./后端开发/)
- [兴趣](./兴趣/)
- [赞助和推广](./赞助和推广/)
- [社会认知](./社会认知/)
- [生活记录](./生活记录/)
- [前端开发](./前端开发/)
- [开发工具技巧](./开发工具技巧/)
- [容器技术](./容器技术/)
- [Python语言](./Python语言/)
- [AI相关](./AI相关/)
- [Linux系统](./Linux系统/)
Expand All @@ -20,7 +19,6 @@
- [系统架构](./系统架构/)
- [Windows系统](./Windows系统/)
- [About](./public/public.md)
- [英语](./英语/)
- [Rust语言](./Rust语言/)
- [算法面试](./算法面试/)
- [VitePress 博客](./Readme.md)
20 changes: 0 additions & 20 deletions docs/兴趣/index.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/后端开发/Spring/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
- [如何发布jar包到Maven Central仓库](./how-to-public-jar-to-maven-central.md)
- [在Spring Boot项目中使用Toml配置文件](./use-toml-config-in-spring-boot.md)
- [常用的logback或log4j开发配置](./常用的logback或log4j开发配置.md)
- [SpringBoot 整合Jedis](./sprint-boot-with-jedis/sprint-boot-with-jedis.md)
- [Spring 框架接口接收数据报400或415](./resove-http-error-code-400-and-415.md)
- [Spring Boot事务](./spring-transaction.md)
- [springboot添加junit测试](./spring-boot-with-junit-test.md)
Expand Down

This file was deleted.

2 changes: 1 addition & 1 deletion docs/后端开发/index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# 后端开发
- [Spring](./Spring/)
- [maven](./maven/)
- [存储100亿密码rockyou2024](./存储100亿密码rockyou2024.md)
- [Nginx](./Nginx/)
- [j2ee](./j2ee/)
- [Spring](./Spring/)
- [引入durid连接池并配置完整sql打印](./使用durid打印可执行sql.md)
- [Java流式转换超大文本的字符编码](./Java流式转换超大文本的字符编码.md)
- [代码质量扫描](./代码质量扫描/)
Expand Down
1 change: 1 addition & 0 deletions docs/容器技术/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# 容器技术
- [我的世界开服](./我的世界开服/)
- [docker-compose中如何访问宿主机的网络](./docker-compose中如何访问宿主机的网络.md)
- [管理docker网络地址范围](./管理docker网络.md)
- [ubuntu docker使用nvidia显卡跑ai](./docker使用nvidia显卡跑ai.md)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# 我的世界开服
- [我的世界各个服务器类型区别](./我的世界各个服务器类型区别.md)
- [我的世界开服-docker-compose](./我的世界开服-docker-compose.md)
- [使用Docker一键开启我的世界服务器[java/基岩]](./使用Docker一键开启我的世界服务器.md)
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# AI-M61-32SU点灯

## 下载驱动
U8 编程器USB 转串口驱动(http://www.stcmcu.com/STCISP/CH341SER.exe

## 按照教程开始搞

https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=43775&extra=page%3D1


进入\AiPi-Open-Kits\AiPi-Eyes-DU,执行 make 进行编译

在开发板上按住 IO2 按键并按一下 EN 按键进入烧录模式

执行,COM4 为上面找到的 COM 口

```
make flash COMX=COM4
```
# AI-M61-32SU点灯

## 下载驱动
U8 编程器USB 转串口驱动(http://www.stcmcu.com/STCISP/CH341SER.exe

## 按照教程开始搞

https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=43775&extra=page%3D1


进入\AiPi-Open-Kits\AiPi-Eyes-DU,执行 make 进行编译

在开发板上按住 IO2 按键并按一下 EN 按键进入烧录模式

执行,COM4 为上面找到的 COM 口

```
make flash COMX=COM4
```
输出 SUCCESS 后再按一次 EN,板子成功点亮
1 change: 1 addition & 0 deletions docs/嵌入式相关/index.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# 嵌入式相关
- [AI-M61-32SU点灯](./AI-M61-32SU点灯.md)
- [Ai-M61-32S开发板编译](./Ai-M61-32S开发板编译/Ai-M61-32S开发板编译.md)
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# Electron客户端应用程序缺点

- 资源消耗:由于 Electron 应用程序需要运行 Chromium 浏览器内核,
因此它们通常需要更多的系统资源,如内存和处理器时间,与本地应用程序相比,这可能导致性能问题。

- 文件大小: Electron 应用程序通常具有比本地应用程序更大的文件大小,
因为它们需要包含 Chromium 浏览器内核和其他依赖项,这可能会增加应用程序的下载和安装时间。

- 安全性:由于 Electron 应用程序使用 Chromium 内核来显示网页和运行 JavaScript 代码,
因此它们可能容易受到安全漏洞和攻击。因此,开发人员必须采取额外的安全措施来保护应用程序和用户数据。

- 难以调试:由于 Electron 应用程序通常包含多个进程,如渲染进程和主进程,
因此调试可能会变得更加复杂。此外,开发人员必须了解 Chromium 内核和 Node.js 环境来调试应用程序。

- 开发成本:与使用本地应用程序开发工具相比,使用 Electron 开发应用程序可能需要更多的时间和资源。
这是因为开发人员需要掌握多个技术栈,包括前端开发,后端开发和桌面应用程序开发。

这些都是可能的 Electron 框架开发客户端应用程序的弊端,
但这并不意味着 Electron 框架就不是一个好的开发选择。
# Electron客户端应用程序缺点

- 资源消耗:由于 Electron 应用程序需要运行 Chromium 浏览器内核,
因此它们通常需要更多的系统资源,如内存和处理器时间,与本地应用程序相比,这可能导致性能问题。

- 文件大小: Electron 应用程序通常具有比本地应用程序更大的文件大小,
因为它们需要包含 Chromium 浏览器内核和其他依赖项,这可能会增加应用程序的下载和安装时间。

- 安全性:由于 Electron 应用程序使用 Chromium 内核来显示网页和运行 JavaScript 代码,
因此它们可能容易受到安全漏洞和攻击。因此,开发人员必须采取额外的安全措施来保护应用程序和用户数据。

- 难以调试:由于 Electron 应用程序通常包含多个进程,如渲染进程和主进程,
因此调试可能会变得更加复杂。此外,开发人员必须了解 Chromium 内核和 Node.js 环境来调试应用程序。

- 开发成本:与使用本地应用程序开发工具相比,使用 Electron 开发应用程序可能需要更多的时间和资源。
这是因为开发人员需要掌握多个技术栈,包括前端开发,后端开发和桌面应用程序开发。

这些都是可能的 Electron 框架开发客户端应用程序的弊端,
但这并不意味着 Electron 框架就不是一个好的开发选择。
开发人员应该权衡其优缺点并选择最适合其需求和资源的工具。
Original file line number Diff line number Diff line change
@@ -1,55 +1,55 @@
# Export OTP From Microsoft Authenticator

## Referance article

[Chinese article](https://zhufan.net/2023/10/05/%E6%89%8B%E5%8A%A8%E5%AF%BC%E5%87%BA-microsoft-authenticator-%E4%B8%AD%E7%9A%84%E5%AF%86%E9%92%A5/)


## Export Microsoft Authenticator database

You can use a rooted phone or a rooted android virtual machine,and use root explore app(like mt管理器 root explore ) to export database file from this path "/data/data/com.azure.authenticator/databases/PhoneFactor".

## Get data from PhoneFactor and generate QR images

I add the generate image part to the python script form the reference article.

This is the full script:

```shell
pip install qrcode[pil]
```

```python
import sqlite3
import uuid
import json
import qrcode
# connect to sqlite3 database
conn = sqlite3.connect('PhoneFactor')
cursor = conn.cursor()

# execute SQL query,only select account_type=0,because outlook account not supported
cursor.execute("SELECT name, username, oath_secret_key FROM accounts WHERE account_type = 0")

result = []

# put result to object array
for row in cursor.fetchall():
name, username, secret_key = row
uuid_str = str(uuid.uuid4())
otpauthstr = f"otpauth://totp/{name}:{username}?secret={secret_key}"
result.append({
"uuid": uuid_str,
"otpauthstr": otpauthstr
})

# close database connection
conn.close()

# generate qrcode images
output_json = json.dumps(result, indent=4)
for i in result:
print(i)
img = qrcode.make(i['otpauthstr'])
img.save(f"{i['uuid']}.png")
```
# Export OTP From Microsoft Authenticator

## Referance article

[Chinese article](https://zhufan.net/2023/10/05/%E6%89%8B%E5%8A%A8%E5%AF%BC%E5%87%BA-microsoft-authenticator-%E4%B8%AD%E7%9A%84%E5%AF%86%E9%92%A5/)


## Export Microsoft Authenticator database

You can use a rooted phone or a rooted android virtual machine,and use root explore app(like mt管理器 root explore ) to export database file from this path "/data/data/com.azure.authenticator/databases/PhoneFactor".

## Get data from PhoneFactor and generate QR images

I add the generate image part to the python script form the reference article.

This is the full script:

```shell
pip install qrcode[pil]
```

```python
import sqlite3
import uuid
import json
import qrcode
# connect to sqlite3 database
conn = sqlite3.connect('PhoneFactor')
cursor = conn.cursor()

# execute SQL query,only select account_type=0,because outlook account not supported
cursor.execute("SELECT name, username, oath_secret_key FROM accounts WHERE account_type = 0")

result = []

# put result to object array
for row in cursor.fetchall():
name, username, secret_key = row
uuid_str = str(uuid.uuid4())
otpauthstr = f"otpauth://totp/{name}:{username}?secret={secret_key}"
result.append({
"uuid": uuid_str,
"otpauthstr": otpauthstr
})

# close database connection
conn.close()

# generate qrcode images
output_json = json.dumps(result, indent=4)
for i in result:
print(i)
img = qrcode.make(i['otpauthstr'])
img.save(f"{i['uuid']}.png")
```
Loading

0 comments on commit da67afb

Please sign in to comment.