原创 golang pbkdf2加密存儲用戶密碼

概述 PBKDF2(Password-Based Key Derivation Function) 是一個用來導出密鑰的函數,常用於生成加密的密碼。原理是通過 password 和 salt 進行 hash 加密,然後將結果作爲

原创 Golang發送HTTP請求

Golang發送HTTP請求 import ( "bytes" "encoding/json" "errors" "io" "io/ioutil" "net/http" "github.com/golang/glo

原创 Git合併多個提交記錄並推送到遠程分支

背景 當我們錯誤提交代碼到遠程倉庫後,比如錯誤提交了一個密鑰到遠程倉庫,之後又提交了刪除密鑰,別人就可以通過提交記錄看到你的密鑰,這時候需要把多個提交記錄合併爲一個,並推送到遠程分支 步驟 查看最近幾次的提交記錄 git reba

原创 Java Web問題雜談

如何構建springboot服務: 1、使用idea spring構建項目 2、構建不同的profile test pre prd等 3、使用mybatis代碼生成器 4、本地構建代碼後 上傳jar包到maven私服的配置 5、引

原创 文件上傳或消息推送方案探討

場景 一大批文件或者一批消息要推送到另外一個系統。以下以文件爲例,一批文件需要上傳到文件服務器,目前已經有文件表T_FILE裏面存儲了文件路徑等信息。 實現 方案一 文件表T_FILE新增一字段UPLOADSTATUS標識文件是

原创 Golang開發環境搭建及第一個Go程序HelloWorld

安裝GoLand https://www.jetbrains.com/go/ 安裝go sdk 選擇版本後,下載即可。 選擇go path,類似於workspace 添加後選擇目錄即可 新建工程 新建文件main.go 打

原创 如何給共享文件夾中的圖片添加水印

場景 一個圖片文件查看或者下載前需要加上水印,文件本身存儲在共享文件夾下。 共享文件(Smb共享) mac下共享文件 操作步驟: 系統偏好設置-共享-文件共享-使用smb共享文件或文件夾,訪問用戶爲guset,密碼爲空 系統偏

原创 登錄的雙因素認證-Golang實現

需求 實現登錄雙因素認證 開源庫使用 框架:github.com/gin-gonic/gin 驗證碼:github.com/dchest/captcha session管理:github.com/gorilla/sessions

原创 go-chart實現折線圖/餅圖/柱狀圖繪製

需求 郵件中實現統計信息的發送。統計信息以折線圖、餅圖、柱狀圖的形式展示。因爲郵件中無法支持js解析,所以採用go-chart生成PNG圖片後base64編碼後發送。 <img src="data:image/png;base64

原创 Jconsole遠程連接Java進程

1、Java進程啓動配置 Java進程所在的tomcat容器的start.sh添加如下配置 JAVA_OPTS="-Dfile.encoding=UTF-8" JAVA_OPTS="$JAVA_OPTS -Dlog.dir=$L

原创 劍指Offer-數據結構與算法題目(Java實現)

1、棧與隊列 【劍指Offer-5】兩個棧實現隊列 【劍指Offer-20】包含min函數的棧 【劍指Offer-21】棧的壓入、彈出序列 【劍指Offer-64】滑動窗口的最大值 【實現一個棧】 【實現一個隊列】 【包含min/

原创 Go與Nginx(lua-resty-string)跨語言加解密

需求 用戶登錄後,go服務端把身份、IP信息等加密放到cookie中。Nginx(基於openresty構建)lua解密,比較訪問的IP與cookie中記錄的IP是否一致,不一致則進行攔截。 以下采用CBC模式實現,跨語言的AES

原创 openresty lua 發送http請求

openresty中http請求 環境構建:openresty docker openresty實踐:openresty最佳實踐 依賴:lua-resty-http 可直接下載http.lua/http_headers.lua放到

原创 Golang實現結構體簽名驗籤&grpc/gin中間件

設計目標 支持RSA2加簽驗籤(解析密鑰方式:PKCS1 數字簽名算法:SHA256) 支持grpc攔截器加簽驗籤,對業務代碼無侵入 支持gin框架中間件驗籤,支持客戶端發送http請求設置加簽信息到Header中 支持服務

原创 Spring Boot多數據源配置/讀寫分離(Druid+MyBatisPlus)

SpringBoot配置多數據源/讀寫分離整體步驟 Jar包引入 spring boot + druid + mybatis plus(多數據源 + 分頁) application.yml配置多數據源及mybatis plus