[Lazarus-es] Ayuda con encriptado TripleDes

Maxi maximiliano.duarte en gmail.com
Vie Sep 5 20:51:51 CEST 2014


si le que encuentro diferente, es que en el componente dcp_3des tiene
el modo cmCBC y no hay uno ECB como vi que usa en el codigo.
Buscando encontre en torry.net Delphi Encryption Compendium (DEC) desde 2010
voy a ver que hace.

El día 5 de septiembre de 2014, 15:32, Martin Gomez
<mmgomez en gmail.com> escribió:
> El problema ahí es que ests utilizando System.Security.Cryptography, que es
> parte de .NET y no lo tenemos disponible en Lazarus.
>
> Fijate en Torry hay varios componentes que hacen eso
> http://www.torry.net/pages.php?id=519 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
> http://sourceforge.net/projects/tplockbox/
>
> 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)
>
>
>
> On Fri, Sep 5, 2014 at 1:56 PM, Maxi <maximiliano.duarte en gmail.com> wrote:
>>
>> Tengo que hacer un encryptado para subir datos a un webservice y me lo
>> piden encriptado con 3Des.
>> Hice unas pruebas pero no me da ni cerca el resultado con lo comparado.
>>
>> Tengo esto en la documentacion en C# para pasarlo a Lazarus.
>>
>> using System;
>> using System.Collections.Generic;
>> using System.Linq;
>> using System.Text;
>> using System.Security.Cryptography;
>> using System.IO;
>> namespace CrypDES
>> {
>> public class TripleDESUtil
>> {
>> #region [Properties]
>> public byte[] IV { get; set; }
>> public byte[] Key { get; set; }
>> #endregion
>> #region [Constructors]
>> public TripleDESUtil()
>> {
>> }
>> public TripleDESUtil(string pKey)
>> {
>> var encoding = new UTF8Encoding();
>> Key = encoding.GetBytes(pKey);
>> }
>> #endregion
>> #region [Methods]
>> /// <summary>
>> /// Desencripta el arreglo de bytes que recibe como parametro utilizando
>> /// el algoritmo TripleDES
>> /// </summary>
>> /// <param name="pText"></param>
>> /// <returns>Texto desencriptado</returns>
>> public string DesEncrypt(byte[] pText)
>> {
>> var cryptoProvider = new TripleDESCryptoServiceProvider();
>> cryptoProvider.KeySize = 192;
>> cryptoProvider.Mode = CipherMode.ECB;
>> cryptoProvider.Padding = PaddingMode.Zeros;
>> var cryptoTransform = cryptoProvider.CreateDecryptor(Key, IV);
>> var memoryStream = new MemoryStream(pText);
>> var cryptoStream = new CryptoStream(memoryStream, cryptoTransform,
>> CryptoStreamMode.Read);
>> var sr = new StreamReader(cryptoStream, true);
>> return sr.ReadToEnd();
>> }
>> /// <summary>
>> /// Encripta el texto que recibe como parametro utilizando el algoritmo
>> /// tripleDES
>> /// </summary>
>> /// <param name="pText"></param>
>> /// <returns>Arreglo de bytes correspondiente al texto
>> encriptado</returns>
>> public byte[] Encrypt(string pText)
>> {
>> var encoding = new UTF8Encoding();
>> Integración de Aplicaciones - Web Service
>> Pág. 5 de 6
>> var message = encoding.GetBytes(pText);
>> var cryptoProvider = new TripleDESCryptoServiceProvider();
>> cryptoProvider.KeySize = 192;
>> cryptoProvider.Mode = CipherMode.ECB;
>> cryptoProvider.Padding = PaddingMode.Zeros;
>> IV = cryptoProvider.IV;
>> var criptoTransform = cryptoProvider.CreateEncryptor(Key, IV);
>> var memoryStream = new MemoryStream();
>> var cryptoStream = new CryptoStream(memoryStream, criptoTransform,
>> CryptoStreamMode.Write);
>> cryptoStream.Write(message, 0, message.Length);
>> cryptoStream.FlushFinalBlock();
>> return memoryStream.ToArray();
>> }
>> #endregion
>> }
>> }
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
>
>
> --
> 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.
> Linus Torvalds
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>



-- 
El que pregunta aprende, y el que contesta aprende a responder.

No a la obsolecencia programada:
http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml

Linux User #495070
http://domonetic.com/blog




More information about the Lazarus-es mailing list