Categorygithub.com/k0sf/gorm-sqlite3-n
modulepackage
0.0.1
Repository: https://github.com/k0sf/gorm-sqlite3-n.git
Documentation: pkg.go.dev

# README

gorm-sqlite3-n

SQLCipher、wxSQLite3

Install

go get -u github.com/k0sf/gorm-sqlite3-n@main

wxSQLite3 (to)

ps: 默认为AES128加密


package main

import (
	"fmt"
	"github.com/k0sf/gorm-sqlite3-n/wxSQLite3"
	"gorm.io/gorm"
	"log"
	"net/url"
)

func main() {
    var db *gorm.DB
    var err error
    
    key := url.QueryEscape("pass")
    path := "./dbtest.db"
    dsn := fmt.Sprintf("%s?_db_key=%s", path, key)
    
    db, err = gorm.Open(wxSQLite3.Open(dsn), &gorm.Config{})
    if err != nil {
    log.Fatal(err)
    }
    
    type Users struct {
    Id     int64  `json:"id"`
    Name string `json:"name"`
    }
    var list []Users
    
    db.Table("users").Find(&list)
    fmt.Println(list)
}

设置或修改密码

package main

import (
	"flag"
	"fmt"
	"github.com/k0sf/gorm-sqlite3-n/wxSQLite3"
)

func main() {
	var name string
	var srcPass, newPass string
	flag.StringVar(&name, "name", "db.db", "-name=db.db")
	flag.StringVar(&srcPass, "src", "", "-src=[old password]")
	flag.StringVar(&newPass, "new", "", "-new=[new password]")
	flag.Parse()
	if name == "" {
		fmt.Println("No database (SQLite3) file specified! ")
	}
	if srcPass == newPass {
		fmt.Println("No need to change password. ")
		return
	}
	
	err := wxSQLite3.ResetDBKey(name, srcPass, newPass)
	if err != nil {
		fmt.Println("Fail! ", err)
		return
	}
	fmt.Println("Successful. ")
}

SQLCipher (to)


package main

import (
	"fmt"
	"github.com/k0sf/gorm-sqlite3-n/SQLCipher"
	"gorm.io/gorm"
	"log"
	"net/url"
)

func main() {
    var db *gorm.DB
    var err error

	key := url.QueryEscape("pass")
	path := "./dbtest.db"
    dsn := fmt.Sprintf("%s?_pragma_key=%s", path, key)
    
    db, err = gorm.Open(SQLCipher.Open(dsn), &gorm.Config{})
    if err != nil {
    log.Fatal(err)
    }
    
    type Users struct {
    Id     int64  `json:"id"`
    Name string `json:"name"`
    }
    var list []Users
    
    db.Table("users").Find(&list)
    fmt.Println(list)
}

# Packages

No description provided by the author
Package sqlite3 provides interface to SQLite3 databases.
No description provided by the author