//-----------------------------------------------------------------------
// <copyright file="CryptoUtil.cs" company="Pyramid Consulting">
// Copyright (c) Pyramid Consulting. All rights reserved.
// khoa.tran - 15-Dec-2007
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
namespace Bamboo.Core.Common.Crypto
{
public class CryptoUtil
{
public static byte[] EncryptSHA1(string text)
{
SHA1 sha1 = SHA1.Create();
UTF8Encoding encoding = new UTF8Encoding();
return sha1.ComputeHash(encoding.GetBytes(text));
}
}
}
Month: February 2011
new SHA1Managed()
using System;
using System.Text;
using System.Security.Cryptography;
class MainClass {
public static void Main(string[] args) {
HashAlgorithm hashAlg = null;
hashAlg = new SHA1Managed();
using (hashAlg) {
byte[] pwordData = Encoding.Default.GetBytes(args[1]);
byte[] hash = hashAlg.ComputeHash(pwordData);
Console.WriteLine(BitConverter.ToString(hash));
}
}
}
PolicyHierarchy
using System;
using System.Security.Policy;
using System.Security;
using System.Collections;
class Class1 {
static void Main() {
IEnumerator PolicyEnum = SecurityManager.PolicyHierarchy();
while (PolicyEnum.MoveNext()) {
PolicyLevel levelPolicy = (PolicyLevel)PolicyEnum.Current;
Console.WriteLine(levelPolicy.Label);
IEnumerator PermissionEnum = levelPolicy.NamedPermissionSets.GetEnumerator();
while (PermissionEnum.MoveNext()) {
NamedPermissionSet permissionSet = (NamedPermissionSet)PermissionEnum.Current;
Console.WriteLine(" Permission Set:
Name: {0}
Description {1}", permissionSet.Name, permissionSet.Description);
}
}
}
}
CheckExecutionRights, SavePolicy
using System.Security;
class MainClass {
public static void Main() {
SecurityManager.CheckExecutionRights = true;
SecurityManager.SavePolicy();
SecurityManager.CheckExecutionRights = false;
SecurityManager.SavePolicy();
}
}
Create SecureString
///////////////////////////////////////////////////////////////////////////////////////////////
//
// This File is Part of the CallButler Open Source PBX (http://www.codeplex.com/callbutler
//
// Copyright (c) 2005-2008, Jim Heising
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation and/or
// other materials provided with the distribution.
//
// * Neither the name of Jim Heising nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
///////////////////////////////////////////////////////////////////////////////////////////////
using System;
using System.Security.Cryptography;
using System.Text;
using System.Globalization;
using System.IO;
namespace WOSI.Utilities
{
/// <summary>
/// Summary description for CryptoUtils.
/// </summary>
public class CryptoUtils
{
public static System.Security.SecureString CreateSecureString(string inputString)
{
System.Security.SecureString secureString = new System.Security.SecureString();
foreach (Char character in inputString)
{
secureString.AppendChar(character);
}
return secureString;
}
}
}
Append chars to SecureString
using System;
using System.Security;
public class Example
{
public static void Main()
{
char[] chars = { 't', 'e', 's', 't' };
// Instantiate the secure string.
SecureString testString = new SecureString();
// Assign the character array to the secure string.
foreach (char ch in chars)
testString.AppendChar(ch);
// Display secure string length.
Console.WriteLine("The length of the string is {0} characters.", testString.Length);
}
}
MakeReadOnly, RemoveAt
using System;
using System.Security;
using System.Diagnostics;
class MainClass {
public static SecureString ReadString() {
SecureString str = new SecureString();
ConsoleKeyInfo nextChar = Console.ReadKey(true);
while (nextChar.Key != ConsoleKey.Enter) {
if (nextChar.Key == ConsoleKey.Backspace) {
if (str.Length > 0) {
str.RemoveAt(str.Length - 1);
Console.Write(nextChar.KeyChar+" " +nextChar.KeyChar);
} else {
Console.Beep();
}
} else {
str.AppendChar(nextChar.KeyChar);
Console.Write("*");
}
nextChar = Console.ReadKey(true);
}
str.MakeReadOnly();
return str;
}
public static void Main() {
string user = "user1";
Console.Write("Enter the user's password: ");
using (SecureString pword = ReadString()) {
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "notepad.exe";
startInfo.UserName = user;
startInfo.Password = pword;
startInfo.UseShellExecute = false;
using (Process process = new Process()) {
process.StartInfo = startInfo;
try {
process.Start();
} catch (Exception ex) {
Console.WriteLine("
Could not start Notepad process.");
Console.WriteLine(ex);
}
}
}
}
}

