Saludos gente , aquí os traigo esta dll que he realizado para encryptar strings bajo SHA1 , este método es muy usado para encryptar datos de usuarios en las webs , como peculiaridad tiene que no es reversible , osea que "no se puede desencryptar" , entre comillas...porque? porque bajo fuerza bruta y dedicándole tiempo todo se puede hacer ,aunque no es tarea fácil.
El tema es que para usarlo una forma practica seria:
- Encryptamos ( password o lo que sea ) guardamos en base de datos u otro formato.
- Volvemos a encryptar al validar los datos.
- Comparamos los dos datos encryptados.
De esta forma seria en un logueo por ejemplo en una web , así a la vista humana no son reconocibles nunca los datos originales porque siempre jugamos con datos bajo SHA1.
Datos Dll :
- La dll solo tiene un parámetro , que es el string a encryptar .
- Retorna un string con el código hash1.
Source:

Ejemplo mas dll:
On MediaFire by abood :
El tema es que para usarlo una forma practica seria:
- Encryptamos ( password o lo que sea ) guardamos en base de datos u otro formato.
- Volvemos a encryptar al validar los datos.
- Comparamos los dos datos encryptados.
De esta forma seria en un logueo por ejemplo en una web , así a la vista humana no son reconocibles nunca los datos originales porque siempre jugamos con datos bajo SHA1.
Datos Dll :
- La dll solo tiene un parámetro , que es el string a encryptar .
- Retorna un string con el código hash1.
Source:
[DllExport("SHA1Encrypt", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
static string SHA1Encrypt(string s)
{
UTF8Encoding enc = new UTF8Encoding();
byte[] data = enc.GetBytes(s);
byte[] result;
SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
result = sha.ComputeHash(data);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < result.Length; i++)
{
if (result < 16)
{
sb.Append("0");
}
sb.Append(result.ToString("x"));
}
//
return sb.ToString().ToUpper();
}

Ejemplo mas dll:
On MediaFire by abood :