Thứ Tư, 18 tháng 1, 2017
Thứ Hai, 16 tháng 1, 2017
OAuth: Implicit vs Authorization Code Flow
Thứ Bảy, 14 tháng 1, 2017
Create a new user in Azure Active Directory
Step 1: Azure Active Directory -> Domain names -> copy the domain name
Step 2: Azure Active Directory -> Users and groups -> All users -> Add
Step 3: Create the user name with the domain name in step 1
Step 2: Azure Active Directory -> Users and groups -> All users -> Add
Step 3: Create the user name with the domain name in step 1
Thứ Năm, 12 tháng 1, 2017
Configure Excel Page Layout using EPPlus
worksheet.PrinterSettings.FitToPage = true; worksheet.PrinterSettings.FitToWidth = 1; worksheet.PrinterSettings.FitToHeight = 0;
Add Excel Tooltip (Data Validation) using EPPlus
public static void AddToolTip(ExcelRange excelRange, string title, string text) { var dataValidation = excelRange.DataValidation.AddAnyDataValidation(); dataValidation.ShowInputMessage = true; dataValidation.PromptTitle = title; dataValidation.Prompt = text; }
Thứ Hai, 9 tháng 1, 2017
Asymmetric Algorithm examples in .Net
RSA using RSAParameter Key
RSA using Xml String Key
RSA using KeyContainerName
private RSAParameters _publicKey; private RSAParameters _privateKey; public void AssignNewKey() { using (var rsa = new RSACryptoServiceProvider(2048)) { rsa.PersistKeyInCsp = false; _publicKey = rsa.ExportParameters(false); _privateKey = rsa.ExportParameters(true); } } public byte[] EncryptData(byte[] dataToEncrypt) { using (var rsa = new RSACryptoServiceProvider(2048)) { rsa.PersistKeyInCsp = false; rsa.ImportParameters(_publicKey); return rsa.Encrypt(dataToEncrypt, true); } } public byte[] DecryptData(byte[] dataToDecrypt) { using (var rsa = new RSACryptoServiceProvider(2048)) { rsa.PersistKeyInCsp = false; rsa.ImportParameters(_privateKey); return rsa.Decrypt(dataToDecrypt, true); } }
RSA using Xml String Key
public void AssignNewKey(string publicKeyPath, string privateKeyPath) { using (var rsa = new RSACryptoServiceProvider(2048)) { rsa.PersistKeyInCsp = false; if (File.Exists(privateKeyPath)) { File.Delete(privateKeyPath); } if (File.Exists(publicKeyPath)) { File.Delete(publicKeyPath); } var publicKeyfolder = Path.GetDirectoryName(publicKeyPath); var privateKeyfolder = Path.GetDirectoryName(privateKeyPath); if (!Directory.Exists(publicKeyfolder)) { Directory.CreateDirectory(publicKeyfolder); } if (!Directory.Exists(privateKeyfolder)) { Directory.CreateDirectory(privateKeyfolder); } File.WriteAllText(publicKeyPath, rsa.ToXmlString(false)); File.WriteAllText(privateKeyPath, rsa.ToXmlString(true)); } } public byte[] EncryptData(string publicKeyPath, byte[] dataToEncrypt) { using (var rsa = new RSACryptoServiceProvider(2048)) { rsa.PersistKeyInCsp = false; rsa.FromXmlString(File.ReadAllText(publicKeyPath)); return rsa.Encrypt(dataToEncrypt, false); } } public byte[] DecryptData(string privateKeyPath, byte[] dataToDecrypt) { using (var rsa = new RSACryptoServiceProvider(2048)) { rsa.PersistKeyInCsp = false; rsa.FromXmlString(File.ReadAllText(privateKeyPath)); return rsa.Decrypt(dataToDecrypt, false); } }
RSA using KeyContainerName
const string ContainerName = "MyContainer"; public void AssignNewKey() { CspParameters cspParams = new CspParameters(1); cspParams.KeyContainerName = ContainerName; cspParams.Flags = CspProviderFlags.UseMachineKeyStore; cspParams.ProviderName = "Microsoft Strong Cryptographic Provider"; var rsa = new RSACryptoServiceProvider(cspParams) { PersistKeyInCsp = true }; } public void DeleteKeyInCsp() { var cspParams = new CspParameters { KeyContainerName = ContainerName }; var rsa = new RSACryptoServiceProvider(cspParams) { PersistKeyInCsp = false }; rsa.Clear(); } public byte[] EncryptData(byte[] dataToEncrypt) { var cspParams = new CspParameters { KeyContainerName = ContainerName }; using (var rsa = new RSACryptoServiceProvider(2048, cspParams)) { return rsa.Encrypt(dataToEncrypt, false); } } public byte[] DecryptData(byte[] dataToDecrypt) { var cspParams = new CspParameters { KeyContainerName = ContainerName }; using (var rsa = new RSACryptoServiceProvider(2048, cspParams)) { return rsa.Decrypt(dataToDecrypt, false); } }
Symmetric Algorithm examples in .Net
DES Encryption:
Triple DES Encryption:
AES Encryption:
public byte[] Encrypt(byte[] dataToEncrypt, byte[] key, byte[] iv) { using (var des = new DESCryptoServiceProvider()) { des.Mode = CipherMode.CBC; des.Padding = PaddingMode.PKCS7; des.Key = key; des.IV = iv; using (var memoryStream = new MemoryStream()) { var cryptoStream = new CryptoStream(memoryStream, des.CreateEncryptor(), CryptoStreamMode.Write); cryptoStream.Write(dataToEncrypt, 0, dataToEncrypt.Length); cryptoStream.FlushFinalBlock(); return memoryStream.ToArray(); } } } public byte[] Decrypt(byte[] dataToDecrypt, byte[] key, byte[] iv) { using (var des = new DESCryptoServiceProvider()) { des.Mode = CipherMode.CBC; des.Padding = PaddingMode.PKCS7; des.Key = key; des.IV = iv; using (var memoryStream = new MemoryStream()) { var cryptoStream = new CryptoStream(memoryStream, des.CreateDecryptor(), CryptoStreamMode.Write); cryptoStream.Write(dataToDecrypt, 0, dataToDecrypt.Length); cryptoStream.FlushFinalBlock(); return memoryStream.ToArray(); } } }
Triple DES Encryption:
public byte[] Encrypt(byte[] dataToEncrypt, byte[] key, byte[] iv) { using (var des = new TripleDESCryptoServiceProvider()) { des.Mode = CipherMode.CBC; des.Padding = PaddingMode.PKCS7; des.Key = key; des.IV = iv; using (var memoryStream = new MemoryStream()) { var cryptoStream = new CryptoStream(memoryStream, des.CreateEncryptor(), CryptoStreamMode.Write); cryptoStream.Write(dataToEncrypt, 0, dataToEncrypt.Length); cryptoStream.FlushFinalBlock(); return memoryStream.ToArray(); } } } public byte[] Decrypt(byte[] dataToDecrypt, byte[] key, byte[] iv) { using (var des = new TripleDESCryptoServiceProvider()) { des.Mode = CipherMode.CBC; des.Padding = PaddingMode.PKCS7; des.Key = key; des.IV = iv; using (var memoryStream = new MemoryStream()) { var cryptoStream = new CryptoStream(memoryStream, des.CreateDecryptor(), CryptoStreamMode.Write); cryptoStream.Write(dataToDecrypt, 0, dataToDecrypt.Length); cryptoStream.FlushFinalBlock(); var decryptBytes = memoryStream.ToArray(); return decryptBytes; } } }
AES Encryption:
public byte[] Encrypt(byte[] dataToEncrypt, byte[] key, byte[] iv) { using (var aes = new AesCryptoServiceProvider()) { aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; aes.Key = key; aes.IV = iv; using (var memoryStream = new MemoryStream()) { var cryptoStream = new CryptoStream(memoryStream, aes.CreateEncryptor(), CryptoStreamMode.Write); cryptoStream.Write(dataToEncrypt, 0, dataToEncrypt.Length); cryptoStream.FlushFinalBlock(); return memoryStream.ToArray(); } } } public byte[] Decrypt(byte[] dataToDecrypt, byte[] key, byte[] iv) { using (var aes = new AesCryptoServiceProvider()) { aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; aes.Key = key; aes.IV = iv; using (var memoryStream = new MemoryStream()) { var cryptoStream = new CryptoStream(memoryStream, aes.CreateDecryptor(), CryptoStreamMode.Write); cryptoStream.Write(dataToDecrypt, 0, dataToDecrypt.Length); cryptoStream.FlushFinalBlock(); var decryptBytes = memoryStream.ToArray(); return decryptBytes; } } }
Chủ Nhật, 8 tháng 1, 2017
Keyed Hash Algorithm examples in .Net
public static byte[] ComputeHmacsha1(byte[] toBeHashed, byte[] key) { using (var hmac = new HMACSHA1(key)) { return hmac.ComputeHash(toBeHashed); } } public static byte[] ComputeHmacsha256(byte[] toBeHashed, byte[] key) { using (var hmac = new HMACSHA256(key)) { return hmac.ComputeHash(toBeHashed); } } public static byte[] ComputeHmacsha512(byte[] toBeHashed, byte[] key) { using (var hmac = new HMACSHA512(key)) { return hmac.ComputeHash(toBeHashed); } } public static byte[] ComputeHmacmd5(byte[] toBeHashed, byte[] key) { using (var hmac = new HMACMD5(key)) { return hmac.ComputeHash(toBeHashed); } }
Nhãn:
Cryptography
,
HashAlgorithm
,
HMAC
,
KeyedHashAlgorithm
Hash Algorithm examples in .Net
public static byte[] ComputeHashSha1(byte[] toBeHashed) { using (var sha1 = SHA1.Create()) { return sha1.ComputeHash(toBeHashed); } } public static byte[] ComputeHashSha256(byte[] toBeHashed) { using (var sha256 = SHA256.Create()) { return sha256.ComputeHash(toBeHashed); } } public static byte[] ComputeHashSha512(byte[] toBeHashed) { using (var sha512 = SHA512.Create()) { return sha512.ComputeHash(toBeHashed); } } public static byte[] ComputeHashMd5(byte[] toBeHashed) { using (var md5 = MD5.Create()) { return md5.ComputeHash(toBeHashed); } }
Thứ Năm, 5 tháng 1, 2017
Insert Excel Watermark using EPPlus
public static void AddWatermarkUsingHeaderFooterImage(OfficeOpenXml.ExcelWorksheet worksheet, System.Drawing.Image image) { //Enable PageLayoutView mode to see the watermark worksheet.View.PageLayoutView = true; worksheet.HeaderFooter.EvenHeader.InsertPicture(image, PictureAlignment.Centered); worksheet.HeaderFooter.OddHeader.InsertPicture(image, PictureAlignment.Centered); }
public static void AddWatermarkUsingBackgroundImage(OfficeOpenXml.ExcelWorksheet worksheet, System.Drawing.Image image) { worksheet.BackgroundImage.Image = image; }
Reference:
https://support.office.com/en-us/article/Add-a-watermark-in-Excel-a372182a-d733-484e-825c-18ddf3edf009
https://support.office.com/en-us/article/Add-or-remove-a-sheet-background-9f4bb31d-4538-465b-b5e3-214ff1b56ed7
Đăng ký:
Bài đăng
(
Atom
)