Abel'Blog

我干了什么?究竟拿了时间换了什么?

0%

go-推荐库

记录一些比较好的库,到时候可以方便使用。

管理后台

go-vue-admin

awesome-go

awesome-go

go-trending
你可以使用以下Go语言函数来生成包含8个字符的随机密码,确保每个字符类型(小写字母、大写字母、数字和特殊字符)至少出现一次:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package main

import (
"crypto/rand"
"fmt"
)

func generatePassword() (string, error) {
lowercase := "abcdefghijklmnopqrstuvwxyz"
uppercase := "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
digits := "0123456789"
specialChars := "!@#$%^&*()"
allChars := lowercase + uppercase + digits + specialChars

// Ensure at least one character from each category is included
password := make([]byte, 8)
categories := []string{lowercase, uppercase, digits, specialChars}
for i, category := range categories {
char, err := getRandomChar(category)
if err != nil {
return "", err
}
password[i] = char
}

// Fill the remaining positions with random characters from all categories
for i := 4; i < 8; i++ {
char, err := getRandomChar(allChars)
if err != nil {
return "", err
}
password[i] = char
}

// Shuffle the password to prevent predictable placement
shuffledPassword, err := shuffle(password)
if err != nil {
return "", err
}

return string(shuffledPassword), nil
}

func getRandomChar(s string) (byte, error) {
b := make([]byte, 1)
_, err := rand.Read(b)
if err != nil {
return 0, err
}
index := int(b[0]) % len(s)
return s[index], nil
}

func shuffle(b []byte) ([]byte, error) {
shuffled := make([]byte, len(b))
perm, err := rand.Perm(len(b))
if err != nil {
return nil, err
}
for i, v := range perm {
shuffled[v] = b[i]
}
return shuffled, nil
}

func main() {
password, err := generatePassword()
if err != nil {
fmt.Println("Error generating password:", err)
return
}
fmt.Println("Generated Password:", password)
}

这个程序分几个步骤:

  1. 从每个字符类别(小写、大写、数字、特殊字符)中随机选择一个字符。
  2. 填充密码的剩余部分。
  3. 使用随机索引对密码字符进行混排,确保密码的随机性。
  4. 使用标准的crypto/rand库来生成安全的随机数,确保密码的强度和随机性。

运行此程序将生成一个包含至少每种类型字符的8位密码。

sh: 1: vite: not found
这个错误表明在执行 Vite 命令时,系统找不到 vite 可执行文件。以下是可能的原因和解决方案:

原因分析

1.    未安装 Vite:
•    你可能没有安装 Vite 或者安装失败。
2.    全局路径问题:
•    Vite 未安装为全局模块,或者环境变量未正确配置。
3.    运行环境问题:
•    你可能是在非项目目录下运行了 vite 命令。

解决方案

  1. 确保 Vite 已正确安装

Vite 可以作为全局依赖或项目本地依赖安装。首先,尝试以下命令:

•    全局安装 Vite:

npm install -g vite

•    或者在项目中安装:

npm install vite —save-dev

  1. 检查 node_modules 中的 Vite

如果安装为本地依赖,运行以下命令来确保 vite 安装在 node_modules 中:

ls node_modules/.bin/vite

如果存在,则用 npx 命令执行:

npx vite

  1. 检查全局路径

如果你安装了全局 Vite (-g 选项),但仍然出现错误,可能是 npm 的全局路径未加入环境变量。

运行以下命令检查全局路径:

npm list -g —depth=0

确保 Vite 在全局模块中。如果存在但无法找到,手动添加路径到环境变量:

•    查看全局路径:

npm config get prefix

通常是 /usr/local 或类似路径。

•    将全局路径添加到 PATH 环境变量中:

export PATH=$PATH:$(npm config get prefix)/bin

将此行添加到 ~/.bashrc 或 ~/.zshrc,以便永久生效。

  1. 运行环境问题

确保你在项目目录中运行 vite 命令。如果是启动开发服务器,应该进入包含 package.json 的目录,再运行以下命令:

npm run dev

  1. 重装 Node.js 和 Vite

如果问题依然存在,可能需要重新安装 Node.js 和 Vite:

1.    删除旧的 Node.js 和全局模块。
2.    安装 Node.js 最新版本。
3.    按需重新安装 Vite。

验证安装是否成功

安装完成后,运行以下命令检查:

vite —version

如果显示版本号,说明安装成功。

额外建议

•    如果你使用的是 Yarn 或 PNPM,可以尝试对应的命令安装 Vite:

yarn add vite —dev
pnpm add vite —save-dev

•    如果是一个特定项目问题,检查 package.json 的 scripts 配置是否正确。

gin-admin-vue

默认密码 123456

默认端口: 前端 8080 后端 8888