這篇文章將為大家詳細講解有關golang中DES怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創新互聯建站2013年開創至今,是專業互聯網技術服務公司,擁有項目成都網站建設、網站制作網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元渝水做網站,已為上家服務,為渝水各地企業和個人服務,聯系電話:18980820575package util import ( "bytes" "crypto/cipher" "crypto/des" "encoding/base64" ) var ( iv = []byte{1, 2, 3, 4, 5, 6, 7, 8} key = []byte("java") ) //DES加密 func DesEncrypt(data []byte) string { result, _ := DesEncrypt(data, key, iv) return base64.StdEncoding.EncodeToString(result) } //DES解密 func DesDecrypt(base64Str string) string { result, err := base64.StdEncoding.DecodeString(base64Str) if err != nil { return "" } origData, err := DesDecrypt(result, key, iv) if err != nil { return "" } return string(origData) } func DesEncrypt(origData, key, iv []byte) ([]byte, error) { block, err := des.NewCipher(key) if err != nil { return nil, err } origData = PKCS5Padding(origData, block.BlockSize()) blockMode := cipher.NewCBCEncrypter(block, iv) crypted := make([]byte, len(origData)) blockMode.CryptBlocks(crypted, origData) return crypted, nil } func DesDecrypt(crypted, key, iv []byte) ([]byte, error) { block, err := des.NewCipher(key) if err != nil { return nil, err } blockMode := cipher.NewCBCDecrypter(block, iv) origData := make([]byte, len(crypted)) blockMode.CryptBlocks(origData, crypted) origData = PKCS5UnPadding(origData) return origData, nil } func ZeroUnPadding(origData []byte) []byte { return bytes.TrimRightFunc(origData, func(r rune) bool { return r == rune(0) }) } func PKCS5Padding(ciphertext []byte, blockSize int) []byte { padding := blockSize - len(ciphertext)%blockSize padtext := bytes.Repeat([]byte{byte(padding)}, padding) return append(ciphertext, padtext...) } func PKCS5UnPadding(origData []byte) []byte { length := len(origData) unpadding := int(origData[length-1]) return origData[:(length - unpadding)] }
關于“golang中DES怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網頁名稱:golang中DES怎么用-創新互聯
本文路徑:http://vcdvsql.cn/article26/hsdjg.html
成都網站建設公司_創新互聯,為您提供域名注冊、定制開發、網站改版、軟件開發、營銷型網站建設、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯