1. 程式人生 > >為GoLang增加aes的ECB模式支援

為GoLang增加aes的ECB模式支援

專案裡要用到aes加密(由於歷史原因,必須採用ECB模式)。

在使用golang進行重構時發現,golang居然不支援ecb模式!原因很簡單:因為安全問題。

http://stackoverflow.com/questions/24072026/golang-aes-ecb-encryption   

https://code.google.com/p/go/issues/detail?id=5597

Comment 1:

Why? We left ECB out intentionally: it's insecure, and if needed it's
trivial to implement.

but,作為一個開發語言,安全應該是使用者考慮的,作為一個很基礎的加密方式,還是要支援的嘛~

好吧,他都說了,如果需要,實現起來也很簡單。。。

作為一個拿來主義者,為什麼要重複造輪子呢??

其實在go1.1 就有人提交了ecb的 程式碼,不過由於版本凍結,該功能沒有合併進去。

https://codereview.appspot.com/7860047

造福人類,我把程式碼從那裡copy過來了,整理了一下,在此處下載:

https://code.csdn.net/snippets/1576203

用法很簡單“

 把ecb.go和ecb_aes_test.go 放到C:\Go\src\crypto\cipher 目錄下即可。 使用方法見test_ecb.go (注意:測試程式碼裡沒有使用padding, 請自己處理。)


相關推薦

GoLang增加aes的ECB模式支援

專案裡要用到aes加密(由於歷史原因,必須採用ECB模式)。 在使用golang進行重構時發現,golang居然不支援ecb模式!原因很簡單:因為安全問題。 http://stackoverflow.com/questions/24072026/golang-aes-

(15/24) webpack增加babel支援

Babel是什麼? Babel是一個編譯JavaScript的平臺,它的強大之處表現在可以通過編譯達到以下目的: 使用下一代的javaScript程式碼(ES6,ES7….),即使這些標準目前並未被當前的瀏覽器完全支援。 使用基於JavaScript進行了擴充套件的語言,比如React的JSX。 1.如

增加列屬性方法探究

2個 http nbsp awl 一分鐘 osql 新版 滿足 scene 需求緣起 產品第一版:用戶有用戶名、密碼、昵稱等三個屬性,對應表設計: user(uid, name, passwd, nick) 第二版,產品經理增加了年齡,性別兩個屬性,表結構可能要變成: us

增加一列屬性(補充)

公司 uid dir 註意 器) name 哪些 在線 alter 事情變得有意思了,上一篇花1小時撰寫的“一分鐘”文章,又引起了廣泛的討論,說明相關的技術大家感興趣,挺好。第一次一篇技術文章的評論量過100,才知道原來“評論精選”還有100上限,甚為欣慰(雖然是以一種自己

WebClient增加Cookie的支持

程序 如果 scrip zhang com web github webclient 保存 我們經常會在應用程序中使用到WebClient模擬訪問網站資源並且進行處理,如果多次訪問之間我們希望為他們保存Cookie,換句話說,第一個請求產生的Cookie能自動帶到第二個請求

數字增加千位分隔符

urn turn pre mat code 需要 使用 console log 將普通數字加上千位分隔符在涉及金錢的業務上很常見 例如 123456.78 需要顯示為123,456.78 使用正則的方法最簡單 ``` function numFormat(num){ le

Spring-AOP增加新的功能

-a ring mat ctx implement 另一個 double tar targe 適配器的簡單應用實現:   比如:有一個類Car,在類中有兩個屬性一個為汽車名name,另一個為速度speed。其行為為run()。      現在有一輛車BMWCar 增加了GP

歐盟區塊鏈再添支援 歐洲議會議員表示去中心化系統提供了更多的安全保障

  馬耳他政治家兼歐洲議會議員Roberta Metsola在11月2日的馬耳他區塊鏈峰會上發表了演講。她在演講時表示,由區塊鏈驅動的去中心化系統“提供了更多的安全保障”。 Metsola在峰會上表達了歐洲議會(EP)對區塊鏈和加密貨幣等新興行業的積極立場。這位馬耳他政治家還透露說

autoLayout 增加識別符號,方便除錯

 如上圖,是一個十分簡單的佈局。 root view 上加了一個 button 和一個 webview。 不加識別符號的樣子 檢視層級中沒有標識  只有 UIView、WKWebView 之類,如果view很多,就很難分得清。 約束沒有識別符號  只知道 uiview 和uibutton

IIS增加svg和woff等字體格式的MIME(2003、2008)

兩種 顯示 操作 技術分享 stream 測試 本地測試 需要 分享 因客戶需求,需要在本地添加空間這樣的字體支持,客戶本地測試如下圖:線上服務顯示效果如下圖:經百度查詢後,結果如下:使用了字體文件來顯示矢量的圖標,為了能在IIS上正常顯示圖標,可以通過增加iis的MIME

SpringBoot增加jsp頁面支援,Error resolving template template might not exist or might not be accessible

1.增加mvc支援,一定要注意這種臺階式的配置檔案格式,,,(裡面還有空格的坑),一定要嚴格對照 2.啟動類增加一個重寫的方法 @SpringBootApplication @MapperScan("com.java.dao") public class StartApplicat

LGame效能改進,並增加TMX地圖支援(0 2 96版)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

點選的li顯示併增加類active,其他的li消失並去除類名,實現選項卡效果

記得引入jquery庫 <!DOCTYPE html> <html> <head> <title>選項卡實現原理</title> <script type="text/javascript" src="js/jquery.1.4.

Linux UDP socket 設定的非阻塞模式與阻塞模式區別

UDP socket 設定為的非阻塞模式  ? 1 Len

聊聊那些專演算法設計的模式——訪問模式

AI越來越火熱,人工智慧已然成風!而人工智慧最重要是各種演算法,因此機器學習越來越受到追捧,演算法越來越被重視。 作為一個演算法的研究者,寫出一手高階演算法當然是令人興奮的一件事!但你是否有時會有這種感覺: 1. 寫的演算法很難通用於所有的資料型別!每來一個

Win7系統上GVimcscope增加資料庫檔案的bat檔案--記錄

::此.bat檔案使用方法: 在Win7系統的cmd.exe環境下輸入,xxx.bat Path:\xxx\yyy\zzz GVIMx 0/1,其中第二個引數是原始碼路徑,第三個引數是已開啟的GVim的例項 ::(且是空的,沒有開啟任何目錄及檔案),比如GVIM,GVIM1,GVIM2等;第四個引數控制是否在

AutoLoadCache 7.0.1 大版本釋出,增加 Magic 模式

   6.9.6版本增加kryo序列化支援; 7.0.0 改用Redis Pipeline優化; 7.0.1 增加magic模式、優化分散式鎖、KryoSerializer可增加自定義類註冊器; autoload-cache-spring-boot-starter 為了支援Sp

iOS 使用objc_setAssociatedObject分類增加屬性

使用分類可以為沒有原始碼的類增加方法,但是一般不能增加屬性。如果我們為分類新增屬性的話,要手動實現所加屬性的getter和setter方法,這裡使用關聯物件的方式完成set和get方法。 我們首先了解

Ubuntu、Windows雙系統Ubuntu增加磁碟空間

  這幾天想要訓練siamese-fc,用到85g大小的ILSVRC-2015資料集,發現自己的Ubuntu系統只剩75g了,只能從Windows的硬碟中划過來一部分,步驟如下:   1.在Windows環境下,將要劃出的磁碟進行壓縮,得到未分配的磁碟;   2.將未分配

物件增加屬性和方法()

為物件增加屬性和方法   所有物件除了都會有Object型別的屬性和方法之外,和可以增加自己的屬性和方法。下面依次記寫兩種建立物件例項並新增屬性、方法的程式碼。 第一種: var people = new Object(); people.name = "Vir