encryptMobile
This commit is contained in:
parent
07b33ec35d
commit
f740d1516a
102
encrypt_mobile.go
Normal file
102
encrypt_mobile.go
Normal file
@ -0,0 +1,102 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"tyc-server/pkg/lzkit/crypto"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
const (
|
||||
// 请替换为实际的数据库连接信息
|
||||
dbHost = "tyc_mysql"
|
||||
dbPort = "3306"
|
||||
dbUser = "tyc"
|
||||
dbPassword = "5vg67b3UNHu8"
|
||||
dbName = "tyc"
|
||||
// 请替换为实际的加密密钥
|
||||
secretKey = "ff83609b2b24fc73196aac3d3dfb874f"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 连接数据库
|
||||
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
|
||||
dbUser, dbPassword, dbHost, dbPort, dbName)
|
||||
db := sqlx.NewMysql(dsn)
|
||||
|
||||
// 加密user表的mobile字段
|
||||
if err := encryptUserMobile(db); err != nil {
|
||||
log.Fatalf("加密user表mobile字段失败: %v", err)
|
||||
}
|
||||
|
||||
// 加密user_auth表的auth_key字段
|
||||
if err := encryptUserAuthKey(db); err != nil {
|
||||
log.Fatalf("加密user_auth表auth_key字段失败: %v", err)
|
||||
}
|
||||
|
||||
fmt.Println("加密完成!")
|
||||
}
|
||||
|
||||
func encryptUserMobile(db sqlx.SqlConn) error {
|
||||
// 查询所有未加密的手机号
|
||||
query := "SELECT id, mobile FROM user WHERE mobile IS NOT NULL AND mobile != ''"
|
||||
var rows []struct {
|
||||
ID int64 `db:"id"`
|
||||
Mobile string `db:"mobile"`
|
||||
}
|
||||
if err := db.QueryRows(&rows, query); err != nil {
|
||||
return fmt.Errorf("查询user表失败: %v", err)
|
||||
}
|
||||
|
||||
// 准备更新语句
|
||||
updateStmt := "UPDATE user SET mobile = ? WHERE id = ?"
|
||||
|
||||
// 处理每一行
|
||||
for _, row := range rows {
|
||||
// 加密手机号
|
||||
encryptedMobile, err := crypto.EncryptMobile(row.Mobile, secretKey)
|
||||
if err != nil {
|
||||
return fmt.Errorf("加密手机号失败: %v", err)
|
||||
}
|
||||
|
||||
// 更新数据库
|
||||
if _, err := db.Exec(updateStmt, encryptedMobile, row.ID); err != nil {
|
||||
return fmt.Errorf("更新user表失败: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func encryptUserAuthKey(db sqlx.SqlConn) error {
|
||||
// 查询所有需要加密的auth_key
|
||||
query := "SELECT id, auth_key FROM user_auth WHERE auth_type = 'app_mobile' AND auth_key IS NOT NULL AND auth_key != ''"
|
||||
var rows []struct {
|
||||
ID int64 `db:"id"`
|
||||
AuthKey string `db:"auth_key"`
|
||||
}
|
||||
if err := db.QueryRows(&rows, query); err != nil {
|
||||
return fmt.Errorf("查询user_auth表失败: %v", err)
|
||||
}
|
||||
|
||||
// 准备更新语句
|
||||
updateStmt := "UPDATE user_auth SET auth_key = ? WHERE id = ?"
|
||||
|
||||
// 处理每一行
|
||||
for _, row := range rows {
|
||||
// 加密auth_key
|
||||
encryptedAuthKey, err := crypto.EncryptMobile(row.AuthKey, secretKey)
|
||||
if err != nil {
|
||||
return fmt.Errorf("加密auth_key失败: %v", err)
|
||||
}
|
||||
|
||||
// 更新数据库
|
||||
if _, err := db.Exec(updateStmt, encryptedAuthKey, row.ID); err != nil {
|
||||
return fmt.Errorf("更新user_auth表失败: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Reference in New Issue
Block a user