2009年9月16日 星期三

.NET 如何加密一字串,只讓執行加密的電腦才能解密。

就這樣:
ProtectedData 是 .NET 提供的加密類別,透過此類別加密的資料,只要執行加密的電腦才能解密。

下列程式碼所用到的 System.Security 組件要自行加入參考中。

public static string Protected(string password)

{

if (string.IsNullOrEmpty(password)) return string.Empty;

byte[] plain = Encoding.UTF8.GetBytes(password);

string key = "key";

byte[] cipher = ProtectedData.Protect(plain,

Encoding.UTF8.GetBytes(key),

DataProtectionScope.CurrentUser);

return Convert.ToBase64String(cipher);

}

public static string UnProtected(string base64String)

{

if (string.IsNullOrEmpty(base64String)) return string.Empty;

string key = "key";

byte[] cipher = Convert.FromBase64String(base64String);

byte[] plain = ProtectedData.Unprotect(cipher,

Encoding.UTF8.GetBytes(key),

DataProtectionScope.CurrentUser);

return Encoding.UTF8.GetString(plain);

}


2009年9月10日 星期四

在 Windows 7 上安裝 BootCamp 2.1 (x64) 的方法

我的是 MacBook,一般的 Mac 不知道適用嗎...

1.先把語言改成英文的。
2.執行 BootCamp 2.1 升級程式。

無言的第三行...

2009年9月4日 星期五

讀取 Postgresql 資料 Schema 方法

查詢主機上有哪些資料庫:
SELECT datname FROM pg_database

查詢資料庫有哪些資料表:
SELECT * FROM information_schema.tables

查詢資料庫有哪些資料欄位:
SELECT * FROM information_schema.columns

查詢資料庫的大小:
select pg_database_size('ischool_junior_cgjh_hc')

2009年9月3日 星期四

重設 Postgresql 的 Sequence 方法

這個方法是將 Sequence 設成使用此 Sequence 的資料表 id 最大值。

SELECT setval('dal_log_id_seq', max(id)) FROM student;

2009年9月1日 星期二

使用 Sandcastle Help File Builder 製作 VS.NET 的 HELP 文件

http://itgroup.blueshop.com.tw/jeff377/blog?n=convew&i=3777

2009年8月11日 星期二

在 Postgresql 上為已有資料的資料表增加自動編號欄位方法

通常為新資料表加上自動編號欄位沒啥問題,但是如果是一個已存在的資料表,而且裡面還有一堆資料了,這時就會比較麻煩了,如果直接加自動編號欄沒有問題,但是已存在的資料不會有自動編號,這時就需要一些指令來為已存在的資料填上自動編號。

這個例子是 student 資料表,此資料表是已存在的,而且裡面有成千上萬的資料了…

第一步:新增欄位,但是 SET NOT Null 先不要設。
ALTER TABLE student ADD COLUMN id integer;
ALTER TABLE student ALTER COLUMN id SET STORAGE PLAIN;
ALTER TABLE student ALTER COLUMN id SET DEFAULT nextval('student_id_seq'::regclass);

第二步:為已存在的資料填上自動編號。
UPDATE student set id=nextval('student_id_seq'::regclass);

第三步:執行下列 SET NOT Null 的指令:
ALTER TABLE student ALTER COLUMN id SET NOT NULL;

基本上就是:
1.建立 student_id_seq Sequence,指令我就不寫了,Google 就查的到。
2.新增準備當自動編號的欄位,預設值當然就是剛剛建立的 Sequence。
3.更新自動編號欄,使已存在的資料填上「自動編號」。
4.將自動編號欄設成 Not Null(這一步是選擇性的)。

2009年8月1日 星期六

在 Mac 上安裝實體 Windows 系統的感覺...

我目前雖然是 Mac 的使用者,但其實我並沒有很全心使用 Mac,因為我的工作也大部是在 Windows 上,雖然使用了 MacBook,還是常常需要 Windows,所以也不得以要安裝個 Windows。我原本使用 Mac 上的 VMWare 來裝 Windows ,但是總覺得效能不好…不過這其實是心裡作用,因為其實效能不錯。我實際利用 Mac上的「Boot Camp 輔助程式」安裝了一個實體的 Windows XP,運作的結果,只有在「圖形」效能上有很大的差別,其他的部份,我覺得都還沒啥差別。

至於 Boot Camp 的使用方式,我因為還不會從 Mac 上抓圖,所以…下次再說吧。