如何在Rust程式語言中處理網址的前綴? 2018 年 11 月 25 日 Magic Len Rust 在開發Web應用程式的時候,為了要讓應用程式可以被設定在不同網域,或是不同的網址目錄下,通常會需要對應用程式進行「網址前綴」的設定。舉例來說,如果要把某個Web應用程式運作在「tool.magiclen.org」這個網域的「url」路徑下,我們可以將「https://tool.magiclen.org/url」這個「網址前綴」設定給該Web應用程式,讓它知道如何去正確處理它所用到的其它資源的路徑。... 繼續閱讀
如何用Rust程式語言驗證使用者輸入的資料? 2018 年 11 月 24 日 Magic Len Rust 開發程式的時候,常會需要讓程式能與使用者或其它程式互動,透過文字介面、圖形介面或是通訊協定標準,從外部取得資料來進行更進一步的處理。尤其是當使用者在使用我們的程式時,由於我們沒有辦法限制他們輸入的資料一定要符合程式設計的格式,程式很可能就會因錯誤的輸入而造成錯誤的輸出,甚至對整個系統的安全性造成威脅。所以通常我們在處理外部進來的資料時,會先檢查它們的格式後再進行處理。 繼續閱讀
如何用Rust程式語言進行大量資料的Base64編碼? 2018 年 11 月 21 日 Magic Len Rust Base64是一種能將任意Binary資料用64種字元組合成字串的方法,而這個Binary資料和字串資料彼此之間是可以互相轉換的,十分方便。Base64通常會用在小量資料上,因此可以完全將資料放在主記憶體中處理。但如果遇到大量資料時該怎麼辦呢? 繼續閱讀
如何在Rust程式語言中輕鬆用斜線串接字串? 2018 年 11 月 19 日 Magic Len Rust 在開發程式的時候常常會需要處理檔案路徑或是URL網址的串接問題,如果字串是從使用者端輸入的,由於不同使用者的習慣不同,可能有人習慣在檔案目錄路徑或是網址前面後面多加斜線,也可能有人習慣不加。如果程式是設計成要用某個使用者輸入的字串當作前綴,去串接其它的字串來組成檔案路徑或是網址的話,那麼前綴是不是以斜線結尾的影響就很大了。例如使用者輸入了「path/to/folder/」這樣的檔案目錄路徑,然後程... 繼續閱讀
ShortCrypt─在Rust和網頁瀏覽器上實現資料加解密,並且能夠互通的函式庫 2018 年 11 月 17 日 Magic Len 研究分享、 Rust、 JavaScript 在開發程式的時候,我們可能會需要隱藏敏感的資料,讓一般使用者不會直接看到,例如流水序號、密碼、網頁Cookie等。這樣的資料通常都很小,可能只有數個位元組,但如果使用AES/DES加密,密文(也就是加密後的資料)都至少有16個位元組以上!實在不太適合用來加密這樣的少量資料。 繼續閱讀
如何使用Rust程式語言實現權重抽籤? 2018 年 11 月 15 日 Magic Len Rust 在撰寫抽籤或抽獎程式的時候,我們可能會希望能夠依照籤或獎品的稀有程度來決定其被抽出來的機率。這樣的功能這要如何用Rust程式語言來實現呢? 繼續閱讀
如何用Rust實現繁體中文和簡體中文的轉換? 2018 年 11 月 12 日 Magic Len Rust 中文是超過10億人以上使用的語言,以地區來分的話大致可以分為繁體中文與簡體中文,其中的繁體中文又可以再分為台灣正體和香港繁體。台灣正體、香港繁體和簡體中文除了字形上會有差異之外(例如「體」和「体」),用語也是稍有不同(例如「程式」和「程序」、「軟體」和「软件」),所以使用程式語言處理中文地區轉換,並不是一件容易的事情。還好,有一個以C++程式語言為基礎所開發出來的開源工具──OpenCC,可以協助... 繼續閱讀
如何使用Rust程式語言來產生密碼或是計算密碼強度?密碼又該如何安全儲存呢? 2018 年 11 月 9 日 Magic Len Rust 密碼是一種最常用來驗證身份的機制,例如在登入使用者帳號時,常會搭配密碼一起輸入,以確保存取這個帳號的人是帳號的擁有人或是代理人。由於密碼就像是身份證一樣的東西,因此不能太簡單,太簡單就會容易被人猜到,或是被電腦程式破解。在撰寫程式的時候,我們常會需要檢查、驗證及儲存使用者輸入的密碼,或是產生出密碼以供使用者或是系統本身使用。若是使用Rust程式語言的話,要如何處理密碼的相關功能呢? 繼續閱讀
如何在Linux作業系統上交叉編譯Rust程式? 2018 年 11 月 7 日 Magic Len Rust 當Rust程式開發完成,要進入部署階段的時候,開發時用的系統環境和投入使用時用的系統環境不一定會相同,例如用x86_64桌上型電腦和Linux作業系統開發ARM64樹莓派上的程式,在部署的時候我們就需要針對樹莓派所使用的CPU架構和作業系統來做程式的重新編譯,否則如果直接將x86_64桌上型電腦的Linux作業系統下編譯出來的程式,放到ARM64樹莓派內的話,就算都是使用Linux作業系統,程式也... 繼續閱讀
如何編譯出完全靜態的Rust程式? 2018 年 11 月 5 日 Magic Len Rust 在Linux作業系統上編譯Rust程式時,預設使用的目標(target)為「*-unknown-linux-gnu*」(例如x86_64-unknown-linux-gnu、i686-unknown-linux-gnu等),因此編譯出來的執行檔會與「glibc」進行動態連結。如果使用較新的Linux作業系統來編譯Rust程式,該程式很可能就會因為glibc版本也較新的關係,而無法在較舊的Linux... 繼續閱讀