Su Microsoft Connect è stata rilasciata la versione beta 2 di Windows Installer 4.5. Si tratta dell'ultima beta prevista prima del rilascio della versione finale. Tutti i dettagli sono disponibili sul blog del team di Windows Installer.
Technorati tags:
Windows,
Updates
SQL Server 2005 consente di criptare/decriptare i campi di un record utilizzando chiavi simmetriche, asimmetriche e certificati digitali. Ad esempio, per creare una chiave simmetrica si deve usare la seguente istruzione:
CREATE SYMMETRIC KEY ChiaveSimmetrica WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'pippo';
A questo punto, è possibile utilizzare le funzioni EncryptByKey e DecryptByKey di SQL Server, rispettivamente, per criptare e decriptare i dati specificati. Perché la procedura sia corretta, tuttavia, è necessario aprire la chiave simmetrica prima di richiamare tali funzioni, altrimenti il loro risultato sarà sempre NULL. Detto in codice:
OPEN SYMMETRIC KEY ChiaveSimmetrica DECRYPTION BY PASSWORD = 'pippo'
INSERT INTO Users(UserName, Comments) VALUES('Marco',
EncryptByKey(KEY_GUID('ChiaveSimmetrica'), 'Il mio primo commento cifrato'));
Nell'esempio, il campo UserName è di tipo NVARCHAR(50), mentre Comments è VARBINARY(8000). Questi comandi producono il risultato voluto; se, invece, si esegue solo il secondo, nel campo Comments sarà inserito il valore NULL. Analogamente per la decriptazione:
OPEN SYMMETRIC KEY ChiaveSimmetrica DECRYPTION BY PASSWORD = 'pippo'
SELECT UserName, CONVERT(VARCHAR, DecryptByKey(Comments)) FROM Users;
Infine, al termine delle operazioni è buona norma chiudere la chiave simmetrica:
CLOSE SYMMETRIC KEY ChiaveSimmetrica
A questo indirizzo è disponibile un post dall'emblematico titolo What Every Programmer Should Know About Memory. Esso contiene i link alle varie parti di un articolo di ben 100 pagine che fornisce una panoramica abbastanza estesa del funzionamento della memoria di un calcolatore e di come i programmatori dovrebbero usarla. Come precisato, l'articolo fa esplicito riferimento ai sistemi Unix, infatti gli esempi di codice presentati sono in C, tuttavia gli argomenti trattati hanno validità generale.