<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">El problema ahí es que ests utilizando System.Security.Cryptography, que es parte de .NET y no lo tenemos disponible en Lazarus.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Fijate en Torry hay varios componentes que hacen eso <a href="http://www.torry.net/pages.php?id=519">http://www.torry.net/pages.php?id=519</a> la mayoria con codigo fuente que se tendria que adaptar facilmente a freepascal, Y también está la versión actualizada de TurboPower LockBox en <a href="http://sourceforge.net/projects/tplockbox/">http://sourceforge.net/projects/tplockbox/</a></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Yo iría con DCPCrypt o con LockBox, los dos tienen buena reputación y están en el ambiente Delphi hace un montón de tiempo, fijate cual te queda más cómodo a la hora de usarlo (usan paradigmas distintos)</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Sep 5, 2014 at 1:56 PM, Maxi <span dir="ltr"><<a href="mailto:maximiliano.duarte@gmail.com" target="_blank">maximiliano.duarte@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Tengo que hacer un encryptado para subir datos a un webservice y me lo<br>
piden encriptado con 3Des.<br>
Hice unas pruebas pero no me da ni cerca el resultado con lo comparado.<br>
<br>
Tengo esto en la documentacion en C# para pasarlo a Lazarus.<br>
<br>
using System;<br>
using System.Collections.Generic;<br>
using System.Linq;<br>
using System.Text;<br>
using System.Security.Cryptography;<br>
using System.IO;<br>
namespace CrypDES<br>
{<br>
public class TripleDESUtil<br>
{<br>
#region [Properties]<br>
public byte[] IV { get; set; }<br>
public byte[] Key { get; set; }<br>
#endregion<br>
#region [Constructors]<br>
public TripleDESUtil()<br>
{<br>
}<br>
public TripleDESUtil(string pKey)<br>
{<br>
var encoding = new UTF8Encoding();<br>
Key = encoding.GetBytes(pKey);<br>
}<br>
#endregion<br>
#region [Methods]<br>
/// <summary><br>
/// Desencripta el arreglo de bytes que recibe como parametro utilizando<br>
/// el algoritmo TripleDES<br>
/// </summary><br>
/// <param name="pText"></param><br>
/// <returns>Texto desencriptado</returns><br>
public string DesEncrypt(byte[] pText)<br>
{<br>
var cryptoProvider = new TripleDESCryptoServiceProvider();<br>
cryptoProvider.KeySize = 192;<br>
cryptoProvider.Mode = CipherMode.ECB;<br>
cryptoProvider.Padding = PaddingMode.Zeros;<br>
var cryptoTransform = cryptoProvider.CreateDecryptor(Key, IV);<br>
var memoryStream = new MemoryStream(pText);<br>
var cryptoStream = new CryptoStream(memoryStream, cryptoTransform,<br>
CryptoStreamMode.Read);<br>
var sr = new StreamReader(cryptoStream, true);<br>
return sr.ReadToEnd();<br>
}<br>
/// <summary><br>
/// Encripta el texto que recibe como parametro utilizando el algoritmo<br>
/// tripleDES<br>
/// </summary><br>
/// <param name="pText"></param><br>
/// <returns>Arreglo de bytes correspondiente al texto encriptado</returns><br>
public byte[] Encrypt(string pText)<br>
{<br>
var encoding = new UTF8Encoding();<br>
Integración de Aplicaciones - Web Service<br>
Pág. 5 de 6<br>
var message = encoding.GetBytes(pText);<br>
var cryptoProvider = new TripleDESCryptoServiceProvider();<br>
cryptoProvider.KeySize = 192;<br>
cryptoProvider.Mode = CipherMode.ECB;<br>
cryptoProvider.Padding = PaddingMode.Zeros;<br>
IV = cryptoProvider.IV;<br>
var criptoTransform = cryptoProvider.CreateEncryptor(Key, IV);<br>
var memoryStream = new MemoryStream();<br>
var cryptoStream = new CryptoStream(memoryStream, criptoTransform,<br>
CryptoStreamMode.Write);<br>
cryptoStream.Write(message, 0, message.Length);<br>
cryptoStream.FlushFinalBlock();<br>
return memoryStream.ToArray();<br>
}<br>
#endregion<br>
}<br>
}<br>
<br>
_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><span style="font-size:small;font-family:tahoma,sans-serif"><div style="display:inline">​</div></span><font face="tahoma, sans-serif" style="font-size:small">Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.<div style="display:inline">​ ​</div></font><i style="font-size:small;font-family:tahoma,sans-serif">Linus Torvalds</i><br></div>
</div>