Dd
dd 的按位補碼?
安全擦除磁碟時,如何使用 dd 進行“按位補碼”?(或使用其他 UNIX 工具?)
tr
是音譯字節的工具:LC_ALL=C tr < file 1<> file '\0-\377' '\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361\360\357\356\355\354\353\352\351\350\347\346\345\344\343\342\341\340\337\336\335\334\333\332\331\330\327\326\325\324\323\322\321\320\317\316\315\314\313\312\311\310\307\306\305\304\303\302\301\300\277\276\275\274\273\272\271\270\267\266\265\264\263\262\261\260\257\256\255\254\253\252\251\250\247\246\245\244\243\242\241\240\237\236\235\234\233\232\231\230\227\226\225\224\223\222\221\220\217\216\215\214\213\212\211\210\207\206\205\204\203\202\201\200\177\176\175\174\173\172\171\170\167\166\165\164\163\162\161\160\157\156\155\154\153\152\151\150\147\146\145\144\143\142\141\140\137\136\135\134\133\132\131\130\127\126\125\124\123\122\121\120\117\116\115\114\113\112\111\110\107\106\105\104\103\102\101\100\77\76\75\74\73\72\71\70\67\66\65\64\63\62\61\60\57\56\55\54\53\52\51\50\47\46\45\44\43\42\41\40\37\36\35\34\33\32\31\30\27\26\25\24\23\22\21\20\17\16\15\14\13\12\11\10\7\6\5\4\3\2\1\0'
或者:
LC_ALL=C tr < file 1<> file '\0-\377' "$(awk ' BEGIN{for (i=0;i<256;i++) printf "\\%o", 255-i}')"
但正如其他人指出的那樣,作為安全擦除沒有意義。首先它不安全,因為原始數據很容易導出,然後從性能的角度來看,由於需要讀取數據,因此在旋轉儲存上效率非常低,然後需要搜尋來重寫數據。
我想我會跳過嘗試自己做這件事,而是
dd
尋找提供這些類型功能的實際工具。我熟悉的 4 個可以做到這一點的工具如下:
- 擦除
- 擦拭
- 撕碎
- 漂白劑
在這 4 種方法中,我會考慮
nwipe
哪一種方法可以安全地從磁碟和/或分區中擦除數據。我也可能會看 BleachBit。
注意:
nwipe
可以從 ncurses TUI 或直接從命令行執行。摘自
nwipe
手冊頁-m, --method=METHOD The wiping method (default: dodshort). dod522022m / dod - 7 pass DOD 5220.22-M method dodshort / dod3pass - 3 pass DOD method gutmann - Peter Gutmann's Algorithm ops2 - RCMP TSSIT OPS-II random / prng / stream - PRNG Stream zero / quick - Overwrite with zeros
您還可以告訴它執行此操作的輪數:
-r, --rounds=NUM Number of times to wipe the device using the selected method (default: 1)
例子
$ nwipe -m dod /dev/sda1
參考
按位補碼
如果您查看原始碼,
nwipe
您會注意到 DoD 7 和 DoD 3 方法都執行按位補碼。國防部 7
char dod [7]; nwipe_pattern_t patterns [] = { { 1, &dod[0] }, /* Pass 1: A random character. */ { 1, &dod[1] }, /* Pass 2: The bitwise complement of pass 1. */ { -1, "" }, /* Pass 3: A random stream. */ { 1, &dod[3] }, /* Pass 4: A random character. */ { 1, &dod[4] }, /* Pass 5: A random character. */ { 1, &dod[5] }, /* Pass 6: The bitwise complement of pass 5. */ { -1, "" }, /* Pass 7: A random stream. */ { 0, NULL } };
國防部 3
char dod [3]; nwipe_pattern_t patterns [] = { { 1, &dod[0] }, /* Pass 1: A random character. */ { 1, &dod[1] }, /* Pass 2: The bitwise complement of pass 1. */ { -1, "" }, /* Pass 3: A random stream. */ { 0, NULL } };
進一步研究這一點,似乎任何聲稱執行 DoD 3 或 7 的軟體都將執行此按位補碼,作為這些特定擦除方法需要執行的一系列通行證的一部分。