最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言實現(xiàn)AzDG可逆加密算法實例

 更新時間:2015年02月23日 12:27:42   作者:不吃皮蛋  
這篇文章主要介紹了Go語言實現(xiàn)AzDG可逆加密算法,實例分析了AzDG可逆加密算法的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Go語言實現(xiàn)AzDG可逆加密算法。分享給大家供大家參考。具體實現(xiàn)方法如下:

復制代碼 代碼如下:
package main

import (
 "fmt"
 "crypto/md5"
 "encoding/base64"
 "time"
)

var cipher = "密鑰"
var h = md5.New()

func cipherEncode(sourceText string) string { 
 h.Write([]byte(cipher))
 cipherHash := fmt.Sprintf("%x", h.Sum(nil))
 h.Reset()
 inputData := []byte(sourceText)
 loopCount := len(inputData)
 outData := make([]byte,loopCount)
 for i:= 0; i < loopCount ; i++ {
  outData[i] = inputData[i] ^ cipherHash[i%32]
 } 
 return fmt.Sprintf("%s", outData)
}

func encode(sourceText string) string { 
 h.Write([]byte(time.Now().Format("2006-01-02 15:04:05")))
 noise := fmt.Sprintf("%x", h.Sum(nil))
 h.Reset()
 inputData := []byte(sourceText)
 loopCount := len(inputData)
 outData := make([]byte,loopCount*2)
 
 for i, j := 0,0; i < loopCount ; i,j = i+1,j+1 {  
  outData[j] = noise[i%32]
  j++
  outData[j] = inputData[i] ^ noise[i%32]
 }
 
 return base64.StdEncoding.EncodeToString([]byte(cipherEncode(fmt.Sprintf("%s", outData))))
}

func decode(sourceText string) string {
 buf, err := base64.StdEncoding.DecodeString(sourceText)
 if err != nil {
  fmt.Println("Decode(%q) failed: %v", sourceText, err)
  return ""
 }
 inputData := []byte(cipherEncode(fmt.Sprintf("%s", buf)))
 loopCount := len(inputData)
 outData := make([]byte,loopCount)
 for i, j := 0,0; i < loopCount ; i,j = i+2,j+1 {  
  outData[j] = inputData[i] ^ inputData[i+1]
 }
 return fmt.Sprintf("%s", outData)
}

func main() {
        s := encode("張學友")
 fmt.Println(s)
 fmt.Println(decode(s))
}

希望本文所述對大家的Go語言程序設計有所幫助。

相關文章

  • Go函數(shù)的使用示例教程

    Go函數(shù)的使用示例教程

    這篇文章主要介紹了Go函數(shù)的使用示例,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • GoLang實現(xiàn)Viper庫的封裝流程詳解

    GoLang實現(xiàn)Viper庫的封裝流程詳解

    Viper是一個用于Go語言應用程序的配置管理庫,它提供了一種簡單而靈活的方式來處理應用程序的配置,支持多種格式的配置文件,這篇文章主要介紹了GoLang封裝Viper庫的流程,感興趣的同學可以參考下文
    2023-05-05
  • Go 并發(fā)控制context實現(xiàn)原理剖析(小結)

    Go 并發(fā)控制context實現(xiàn)原理剖析(小結)

    Golang context是Golang應用開發(fā)常用的并發(fā)控制技術,這篇文章主要介紹了Go 并發(fā)控制context實現(xiàn)原理剖析(小結),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • Golang泛型與類型約束的用法詳解

    Golang泛型與類型約束的用法詳解

    這篇文章主要介紹了Golang泛型與類型約束的用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Go語言開發(fā)瀏覽器視頻流rtsp轉webrtc播放

    Go語言開發(fā)瀏覽器視頻流rtsp轉webrtc播放

    這篇文章主要為大家介紹了Go語言開發(fā)瀏覽器視頻流rtsp轉webrtc播放的過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • golang?waitgroup輔助并發(fā)控制使用場景和方法解析

    golang?waitgroup輔助并發(fā)控制使用場景和方法解析

    Golang?提供了簡潔的?go?關鍵字來讓開發(fā)者更容易的進行并發(fā)編程,同時也提供了?WaitGroup?對象來輔助并發(fā)控制,今天我們就來分析下?WaitGroup?的使用方法,順便瞧一瞧它的底層源碼
    2023-09-09
  • 深入了解Golang網(wǎng)絡編程Net包的使用

    深入了解Golang網(wǎng)絡編程Net包的使用

    net包主要是增加?context?控制,封裝了一些不同的連接類型以及DNS?查找等等,同時在有需要的地方引入?goroutine?提高處理效率。本文主要和大家分享下在Go中網(wǎng)絡編程的實現(xiàn),需要的可以參考一下
    2022-07-07
  • 一文詳解Golang的函數(shù)特性

    一文詳解Golang的函數(shù)特性

    函數(shù)是?Golang?中非常重要的組成部分之一,它們提供了代碼的可重用性和組織性。在本文中,我們將深入了解?Golang?函數(shù)的多個方面,希望對大家有所幫助
    2023-04-04
  • 使用Go語言實現(xiàn)并發(fā)處理CSV文件到數(shù)據(jù)庫

    使用Go語言實現(xiàn)并發(fā)處理CSV文件到數(shù)據(jù)庫

    Go?語言的?goroutine?和通道(channel)非常適合用來并發(fā)地處理數(shù)據(jù),本文將通過簡單示例介紹一下如何使用Go語言并發(fā)地處理?CSV?文件并將數(shù)據(jù)插入到數(shù)據(jù)庫中,感興趣的可以了解下
    2025-01-01
  • golang?Gorm框架講解

    golang?Gorm框架講解

    gorm是一個使用Go語言編寫的ORM框架,這篇文章主要介紹了golang?Gorm框架,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論

东山县| 普安县| 屯门区| 石阡县| 芒康县| 新宾| 监利县| 拜城县| 高唐县| 邢台县| 台南县| 鸡泽县| 隆昌县| 奉贤区| 寿阳县| 阿克| 四子王旗| 民县| 军事| 徐州市| 石首市| 偏关县| 云阳县| 汝阳县| 阳泉市| 清远市| 甘南县| 西吉县| 美姑县| 嘉峪关市| 察雅县| 湖州市| 融水| 富顺县| 蒙自县| 河南省| 红桥区| 秦皇岛市| 上栗县| 龙里县| 东安县|