dropbox 保存密碼的安全措施筆記

Posted on Sat 24 September 2016 in note • Tagged with dropbox, security, passwordLeave a comment

Dropbox 寫了一篇文章來告訴大家他們如何安全地保存用戶的密碼。我認為蠻有趣的,有一些是我沒有接觸過的。

保存密碼的方式

簡單用一行來寫

AES256(bcrypt(SHA512(PASSWORD)))
  • AES256 加密用的是另外存的金鑰 (global pepper),每個用戶都一樣。
  • bcrypt 做 hash 的 salt 是每個使用者分開的,強度是 10
    • 這是引起我細讀的地方

bcrypt 是什麼

bcrypt是基於Blowfish所發展出來的 hash function。因為有 salt 的關係,所以可以對抗 rainbow table 的攻擊。

同時,bcrypt 的 cost (上面寫的強度)會以 2 的 cost ...

Continue reading

docker 更新 jenkins

Posted on Tue 13 September 2016 in note • Tagged with docker, jenkinsLeave a comment

因為自己家的 jenkins 是用 docker 裝的,紀錄一下自動更新 weekly 版本的方式。

安裝 jenkins

照著 jenkins 自己的正式文件來做。

docker create -v /var/jenkins_home --name jenkins_data jenkinsci/jenkins
docker run --volumes-from jenkins_data --name jenkins_container --restart=always -d -p 8080:8080 -p 50000:50000 jenkinsci/jenkins

我的選擇是建一個 jenkins 專用的 volume container。run jenkins container 的時候再掛上來 ...

Continue reading

如何轉換跑道去寫程式

Posted on Fri 09 September 2016 in ama • Tagged with programmingLeave a comment

因為 準備資工所考試的心得 貼在 PTT 的研究所板(graduate) 然後就被問如何轉換跑道去寫程式的。其實我的答案就只有一個

怎麼開始的

  • 小時候在小叔叔的 APPLE II 前用 BASIC 寫出九九乘法表,當時候還先把程式碼寫在習作簿上面之後,再一個字一個字打進去。
  • 為了玩電動,去書店看書背 arj 指令,然後回家解壓縮。找資料改 CONFIG.SYSAUTOEXEC.BAT,來讓記憶體可以玩遊戲還可以多重開機來選不同遊戲!
  • 為了修改遊戲,在使用遊戲修改大師的時候學會了十進制與十六進制的轉換,小時候一直不能理解明明十進制的 999 在十六進制下明明是 0x3E7,但是遊戲修大師就是要填 E7 03。一直到後來學到 endian 才明白真正的原因。
  • 為了找資料,學會了 modem 撥接上 dial-up BBS。
  • 為了玩 MUD,買了當時有名的黑皮書學安裝 ...
Continue reading

準備資工在職專班考試

Posted on Thu 08 September 2016 in graduate school • Tagged with nctu, ncu, nccu, yzuLeave a comment

從 2014 年底決定要考資工在職專班開始到現在要開學也已經過了一年多,記錄一下自己當初準備的方向。同時也期許自己在這樣子忙碌的生活中可以達成目標。

結果

我總共報了四間學校,交大資工、中央資工、政大資管及元智資工。台大資工因為上課時間無法配合,就沒有花錢去報名了。

  • 交大:直接正取,無需口試。
  • 中央:正取,無口試。
  • 政大:正取,有口試。
  • 元智:正取,只有書面審查。

背景

我大學本科是學心理的。因為自身的興趣在畢業後找了一個新創公司上班。寫程式解決問題的工作一做就做了十年了。 心中還是一直想要進入研究所完成碩士學業。

工作內容是無線網路設備嵌入式系統為主的軟體開發,做過 kernel 的模組及 wireless driver,設備中 user mode 的 各種程式 (SNMP agent, device control flow, configuration system, etc.)、使用者介面 (CLI ...

Continue reading

MQTT 資料格式

Posted on Mon 29 August 2016 in note • Tagged with mqtt, iot, protocolLeave a comment

看了一下 MQTT 的文件,隨手紀錄一下。

資料格式的表示

  • 位元組 bit 0 ~ bit 7
    • bit 0 是 least significant bit, bit 7 是 most sigificant bit
  • 整數
    • big endian 排列的 16 bits 數字,也就是最大是 65535。
  • 字串
    • UTF-8 編碼
    • 字串長度從 0-65535
    • 字串結構中,前兩個 byte 放整數,表示 UTF-8 編碼字串的位元組長度。

控制封包結構

  • 固定表頭
    • 全部的 MQTT control packet 都有 ...
Continue reading

Linux Performance tools 整理筆記

Posted on Thu 18 August 2016 in note • Tagged with linux, toolsLeave a comment

Twitter 上看到這一篇推文,整理了 linux 下許多效能監測工具。手動整理一些自己不熟但可能會用到的部分。

  • sar: System Activity Report
  • ss: another utility to investigate sockets
  • IPTraf: IP Network Monitoring Software
  • bcc: BPF Compiler Collection (BCC)

來源:

Continue reading

VirtualBox 發生 VERR_INTNET_FLT_IF_NOT_FOUND 錯誤

Posted on Thu 11 August 2016 in note • Tagged with virutalbox, windowsLeave a comment

升級了 Windows 10 的年度更新之後,VirtualBox 就找不到 host only 網卡了。解決方式很簡單,就是把 VirtualBox Host-Only Ethernet Adapter 網卡的 VirtualBox NDIS6 Bridge Networking Driver 打開就可以了。

乙太網路內容

Continue reading

pip 在 windows 下無法使用

Posted on Fri 22 July 2016 in note • Tagged with python, pip, perlLeave a comment

紀錄一下,主要原因是因為我同時安裝了 Strawberry Perl

輸入 where pip 查詢一下,

C:\Strawberry\perl\bin\pip
C:\Strawberry\perl\bin\pip.bat
C:\Users\Solomon\AppData\Local\Programs\Python\Python35-32\Scripts\pip.exe

所以直接打 pip 就會出現奇怪的訊息。因為執行到 Strawberry 的 pip 了。

Did not provide a command

解決方式就是調整一下 PATH 環境變數,或是使用完整路徑。

Continue reading

用 github 直接新增 blog 文章

Posted on Thu 21 July 2016 in note • Tagged with pelican, blog, githubLeave a comment

之前看了 m157q用 Travis CI 自動化發佈 Pelican blog 到 GitHub Pages 上 的文章後,就設定一樣的自動化發怖流程。

剛剛突然想到,我可以直接在 GitHub 上新建檔案呀!還可以直接 preview,這下子也不用切 env 來寫新的文章。直接先寫這一篇來試試看!

Continue reading

xargs 平行化處理指令

Posted on Tue 19 July 2016 in note • Tagged with linux, xargsLeave a comment

直接先上範例

xargs -a data.txt -I % -P 0 bash -c "sleep 1; echo %"

我要解決的問題是,我有一個文字檔 data.txt,其內容是我要處理的資料,一行一筆。我希望可以同時處理這些資料。答案就是上面的範例。 data.txt 的內容是

a
b
c
d
e
f

現在來解釋一下參數:

  • -a data.txt

    從 data.txt 直接讀入參數,而不是從 STDIN

  • -P 0

    最大執行的 process 數量。平行化的主要參數,0 是盡可能大。以範例來看的話,設 ...

Continue reading