發表文章

C# AES encrypt/decrypt and Base64 encode/decode

圖片
範例檔案: 這裡下載 純執行檔: 這裡下載 有興趣研究 AES 加解密 與 Base64 編解碼 的可以研究一下 因為用到了AES 元件,所以只適用 .NET 3.5 以上 畫面如下: 為什麼 AES 和 BASE64 寫在一起? 因為 AES 加密後的內容是 ASCII 碼,很多是無法以明文顯示的,因此會再編碼成BASE64以便傳遞或攜帶。反過來說,接收到AES的密碼通常會以BASE64編成居多,所以必須解碼後再進行AES解密環原本文。 Base64編碼: 要引用  using System; //將文字內容(明文)轉成base64文字(編碼) tbB64_2.Text = Convert.ToBase64String(Encoding.Default.GetBytes(tbB64_1.Text)); Base64解碼: 要引用  using System; //將base64編碼文字轉回明文(解碼) tbB64_1.Text = Encoding.Default.GetString(Convert.FromBase64String(tbB64_2.Text)); AES加密: 要引用  using System.Security.Cryptography; static byte[] EncryptionByAES(string plainText, byte[] key, byte[] IV) {   byte[] encrypted;   //檢查參數   if (plainText == null || plainText.Length <= 0)      throw new ArgumentNullException("沒有要加密的文字");   if (key == null || key.Length <= 0)      throw new ArgumentNullException("沒有提供金鑰");   if (IV == null || IV.Length <= 0)       throw new ArgumentNullException("沒有提供IV");   //這裡使用Ae

How customize part for Fritzing - 如何自訂 Fritzing 的元件

圖片
建議先瞭解一下 Fritzing customized part principle - Fritzing 自訂元件原則 如果不想瞭解或沒時間瞭解也沒關係,反正就是依樣畫葫蘆也可以 這裡使用的是 Fritzing 0.93b 版的,跟舊版的操作方式會有相當的出入,請注意 。 ○使用的工具:      Fritzing 0.93b 和 Inkscape 0.92.2 ○認識 Fritzing 元件編輯器:     這個版本的元件編輯器所在位置非常彆扭,以前它是直接列在工具『元件』裡面,現在則必須把元件拖進麵包板後才能新建元件。 1、首先開啟 Fritzing ,然後到『麵包板』 2、然後從右側『元件』拖拉一個元件到『麵包板』上,我這邊是選擇『CORE』裡面的 Mysery Part - 3 Pin 3、在『麵包板』上的元件按滑鼠右鍵叫出選單,選單裡面有個『Edit(New Parts Editor)』,點入後就可以看到元件編輯器了 元件編輯器上有6個主要標籤: 麵包板(breadboard): 主要是使用在麵包板上的圖片。 概要圖( schematic): 這邊我會稱為電路圖,因為這比較像電工科在畫的電路圖。 PCB: 印刷板電路,主要是提供給製作PCB輸出時的設計使用。 圖示(icon): 顯示在元件庫上的小圖案/圖示。 Metadata: 這個元件的相關資訊/訊息。 連接器(Connector): 設定這個元件的連接器/街腳/接點 編號、形式、名稱等等。 其中,前4種需要設計圖檔,但其實第4種 icon 可以使用元件編輯器直接以麵包板圖做為縮圖使用。 如果自製元件編輯完畢,記得要存檔,否則會消失不見喔!!! (它不會自動存檔) ○開始繪製圖檔:     使用 Inkscape 繪製 SVG圖檔。 我這邊的例子是以我在網路上購買的一個旋轉編碼器為例 在SVG設計上力求尺寸標準,尤其是連接器的接腳部分,因為這會大大影響您的元件使用在麵包板上時的的孔位是否能對準。 在製作圖檔時至少要做3種圖: 麵包板用 breadboard 概要圖  schematic : PCB:

Fritzing customized part principle - Fritzing 自訂元件原則

圖片
設計 Arduino 或 Resberry pi 的人,大概都用過 Fritzing 來設計電路 雖然它是免費的(當然也接受捐款,我也捐款過),但是缺點是零件(Part)種類無法包山包海。 大家最常遇到的問題是,找不到自己正在使用的零件,所以得靠第三方(別人的)的零件庫。 雖然有第三方零件庫,但說真的,在台灣的玩家常買對岸的零件時,或特製零件(某些賣場會找工廠批量設計生產)時都會找不到零件庫可以用或是下載。 雖然,網路上也接受客製化元件庫設計,不過是要收費的,對於學生/經濟力較弱的人來說,真的都是困難,不過 Fritzing 官方網站也有教您自己如何設計元件,也歡迎您把設計元件庫放在 GitHub 上分享給別人,不過前提是你要搞懂 Fritzing 設計元件的原理和方法。 所以,我把 Fritzing 使用自訂元件的原理,和設計方法簡單的說明一下,讓有心自己設計的人可以很方便的上手。 由於原理和實作內容可能不少,所以我分成幾篇來處理: Fritzing customized part principle - Fritzing 自訂元件原則(本篇) How customize part for Fritzing - 如何自訂 Fritzing 的元件 Make your fzbz file - 建立可以分享的元件檔(正在寫...) 注意我使用的 Fritzing 版本是 0.93b 的版本 , 作業系統是 Windows ,而網路上的中文教學大部分是舊版的而且不少使用 Linux (先說聲抱歉,我沒有用過 Linux,路徑請自行轉換),所以使用上有很大落差,尤其常常會找不到對應的功能表。 關係圖 檔案位置 ※沒相關資料夾的人請先安裝 Fritzing ,然後執行一次就會產生下面需要的資料夾。 Fritzing 的自訂元件通常會放在 %user%\Documents\Fritzing 下,這底下會有 Parts 和 Bins 兩個資料夾: 這個 bins 就是 Fritzing 畫面右邊那個元件庫啦~ 裡面會看到 search.fzb 和 my_parts.fzb 就是對應 搜尋放大鏡 和 My Parts 元件庫(Library)的。(圖案是MINE...

在Windows 7上架設自己的 DNS 服務(使用BIND 9)

圖片
這是因應自己需要架設 DNS 伺服器紀錄的 在沒有Windows Server和Linux作業環境中,利用PC版的Windows開設DNS服務的方式 BIND的官方網站:  https://www.isc.org BIND下載位置(如果不存在請到官方網站尋找): https://www.isc.org/downloads/ 找到下面位置,然後點開BIND項目產生下拉選單,選擇下載版本點選Download,依照作業系統類型選擇下載。 我下載的版本是 9.10.6 穩定版,作業系統是 64位元 下載後是一個壓縮檔,把它解壓縮,會看到一個安裝檔案 BINDinstall.exe 注意,你必須以系統管理員身份執行,否則安裝後會有很多問題 雙擊後進行安裝,下面如下:      注意中間紅框,這個是 BIND啟動用的帳號 [named],一般而言電腦不會有這個帳號,所以 它會在安裝時幫你建立這個帳號 ,當然這個建立過程是有問題的,所以我們事後要去調整這個帳號的權限。 還有一些需要注意(檢查)的: 安裝完畢後,程式正常的安裝位置會在 C:\Program Files\ISC BIND 9,如果你的路徑跑到 C:\Program Files (x86)\ISC BIND 9,代表你的作業系統是64位元,而你下載到的BIND版本是 32位元的。   某些版本BIND的組態設定檔會在 C:\Windows\System32\dns\etc,但是這個版本的組態預設是在 C:\Program Files\ISC BIND 9\etc,而程式與工具路徑會放在 C:\Program Files\ISC BIND 9\bin,要注意的是 C:\Program Files\ISC BIND 9\etc 基本上是空的,接下來所有組態檔都必須自己建立,這點對新手真的不是很友善。   某些套裝電腦會把作業系統的administrator帳號鎖起來,讓使用者以別的帳號執行,雖然這個使用者帳號是可能編屬於administrators權組的,但是對於C:\Program Files和C:\Windows的權限還是有一些限制的,對於接下來要建立BIND的組態與設定會有很多不便(通常是無法儲存設定檔到C:\Program File

【速報】針對WannaCry勒索軟體_微軟系列修補

Windows XP , Windows Vista , Windows 8 , Windows 2003 , Windows Server 2008適用 KB4012598修補快速整理包下載: https://drive.google.com/file/d/0BybxVRTRlzdLclAxV3lrMnpCQXc/view?usp=sharing Windows 7 , Windows Server 2008 R2 的部分要做4月份的SMB修補MS17-010 下載點: http://www.catalog.update.microsoft.com/Search.aspx?q=KB4015549

Imagine viewer 看圖軟體

這裡做個紀錄用... 最早用過ACDSee,它是最好用的,功能強大,但是後來不僅開始收費了,軟體也越來越肥,啟動時間不再像以前快,也不再小而美,後來就棄用。 再來就是FastStone Image Viewer,捨棄ACDSee後就它,但是也越來越商業化。 以上兩套都不支援Unicode,所以當你的圖變資料夾是簡體中文/日文時就會無法讀取 目前較好用的看圖軟體,可以支援Unicode資料夾或檔案名稱,軟體小而美,但功能有點精簡,可是作者自2014年後就再也沒有更新版,不知道怎麼了... 是不是沒錢繼續維護?建議覺得好用就到官網捐點錢,讓作者好繼續維護吧。 ※它有支援很多解碼插件可以自行安裝 官方網站: http://nyam.pe.kr/blog/entry/Imagine 下載點 : http://hqfc.express.com.tw:8080/share.cgi?ssid=0JT5ksH 密碼:qG55oShq

Google 地圖如何得知桌機所在的GPS地理位置

圖片
這是在無意中發現的... 先說Google地圖如何取得GPS地理座標位置的吧。 底下是一般上網的模式: 從我們桌上型PC到Google地圖的方法,透過我們的住戶的網路提供者,接駁到中華電信,然後再透過中華電信的機房,連接到海底電纜,一直連.....,直到Google的伺服器上。 當然,連接到Google伺服器的經過路徑沒那麼少,圖案只是用來簡化說明而已。實際上,網路封包它會經過許許多多的線路和路由器。 然後,Google的伺服器會嘗試從網路的末端,也就是最接近你的PC端的任何裝置上獲取GPS的地理位置訊息。 然而,大家都知道,桌上型PC不會裝載GPS接收器,當然我們家中的路由裝置(分享器、社區網路路由器、第四台業者,ISP.....)也都不會有裝載GPS定位點囉。 但是,有一種路由器的地點一定會有GPS定位點的,那就是負責聯接海外線路骨幹的總機房,它一定會有這個GPS的訊號,因為網際網路上就是利用這個來是別是哪個國家/地區負責的網路。 然後,Google地圖會把你的封包來源搭配這個路徑上最後一個GPS定位點,識別出你的電腦位置。 所以,當你第一次在某個地方,申請網路後,只用一台PC,連上網路,打開Google地圖,點一下畫面右下方的小圓點『我的位置』時,你會發現定位點跑到了桃園龜山這個地方,當然你會想:我又不在那地方,為什麼Google地圖會說我在那裏呢? 這就是原因了。 再來,神奇的是,當你有手機時,情況就不一樣了。 眾所周知,現在的智慧手機(幾乎)都有GPS/AGPS,取得定位資訊,然後,把家裡的網路用無線AP分享給手機上網。 此時,如果手機連上了Google地圖,該網路的末端GPS訊號,就會被更新成為最新的地理位置。此時,如果在PC上重新開啟Google地圖瀏覽,然後再按一下右下方『我的位置』,很神奇的,你就會發現PC的定位點變成了你所在的位置,而且位置還蠻準的呦。 PC版上Google地圖右下角的小圓點上面的說明就會變成『根據你的手機定位紀錄』。