Hash MD5, SHA1, SHA_256, SHA_384, SHA_512, MD2, MD4

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

Hash MD5, SHA1, SHA_256, SHA_384, SHA_512, MD2, MD4

Mensagem por dbsh »

Código: Selecionar todos

//xp, window vista, 2003 server ou posterior
//Capicom.dll - Capicom 2.0 - Capicom.h

#define CAPICOM_HASH_ALGORITHM_SHA1     0
#define CAPICOM_HASH_ALGORITHM_MD2      1
#define CAPICOM_HASH_ALGORITHM_MD4      2
#define CAPICOM_HASH_ALGORITHM_MD5      3
#define CAPICOM_HASH_ALGORITHM_SHA_256  4
#define CAPICOM_HASH_ALGORITHM_SHA_384  5
#define CAPICOM_HASH_ALGORITHM_SHA_512  6

FUNCTION HashCapicom( sTexto, AlgoritimoHash  )
LOCAL objHash

IF sTexto = NIL
   sTexto := DToS(Date()) + Time()
ENDIF

IF AlgoritimoHash = NIL
   AlgoritimoHash := CAPICOM_HASH_ALGORITHM_SHA_512
ENDIF

objHash := CreateObject("CAPICOM.HashedData.1")
objHash:Algorithm := AlgoritimoHash
objHash:Hash( sTexto )

//? "Hash.......: ", objHash:Value
//? "Hash Tamanh: ", Len(objHash:Value)
//?
  
RETURN objHash:Value


FUNCTION CriptCapiCom( sTexto, strHash, AlgoritimoCript, TamanhoChave )
LOCAL objEnc

IF AlgoritimoCript = NIL
   AlgoritimoCript := CAPICOM_ENCRYPTION_ALGORITHM_AES
ENDIF

IF TamanhoChave = NIL
   TamanhoChave := CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM
ENDIF

objEnc  := CreateObject("CAPICOM.EncryptedData.1")

objEnc:Algorithm := AlgoritimoCript
objEnc:Algorithm:KeyLength := TamanhoChave
objEnc:SetSecret( strHash )
objEnc:Content := sTexto

//? "Encriptado.: ", objEnc:Encrypt
//? "Encrip Tam.: ", Len(objEnc:Encrypt)
//? "Algoritimo.: ", objEnc:Algorithm
//?

RETURN objEnc:Encrypt
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Hash MD5, SHA1, SHA_256, SHA_384, SHA_512, MD2, MD4

Mensagem por alxsts »

Olá!

Obrigado por compartilhar.

- Qual a origem destes código (é confiável)?
- Onde foi definido CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM ?
- Qual a diferença entre os resultados de HashCapicom() e CriptCapiCom()?
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

Hash MD5, SHA1, SHA_256, SHA_384, SHA_512, MD2, MD4

Mensagem por dbsh »

São nativo do Windows, não requer DLL nem qualquer outro procedimento para funcionar
Hash - Cria uma validação para o texto/arquivo, pode ser usado para senha, também usado no PAF ECF, pelo fisco para saber se o executável foi alterado depois de homologado.

Cript - Criptograva usando padrão internacional, AES e outros, foi pro engano, esta incompleto, esta completo em outro post posterior a este.
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Hash MD5, SHA1, SHA_256, SHA_384, SHA_512, MD2, MD4

Mensagem por alxsts »

Olá!

Obrigado.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

Hash MD5, SHA1, SHA_256, SHA_384, SHA_512, MD2, MD4

Mensagem por dbsh »

Link da Criptografia - AES, DES, 3DES, RC2, RC4
https://pctoledo.org/forum/viewto ... 43&t=18510
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Hash MD5, SHA1, SHA_256, SHA_384, SHA_512, MD2, MD4

Mensagem por JoséQuintas »

São nativo do Windows, não requer DLL nem qualquer outro procedimento para funcionar
Tem dia que de noite é fogo....
recursos da CAPICOM são.... da CAPICOM.

Caso ache interessante, pode baixar o KIT de desenvolvimento CAPICOM, CAPICOM SDK, que vém com exemplos.

https://www.microsoft.com/en-us/downloa ... x?id=25281

E se tiver a IDE do VB6, pode usar como auxílio pra pesquisa.
vbccapicom.png

O esquema de #include do VB6 é diferente do Harbour.
As constantes são agrupadas por tipo de uso.
Isso é recurso da IDE, não exatamente do VB6.

Na imagem, as constantes referente a algoritmo, e embaixo que número representa.
Dá pra ver constantes, classes, propriedades, etc.

Pode ou não vir pré-instalada no Windows, mas nesse caso sem os exemplos.

Os exemplos em VBScript acho que podem ser usados diretamente no Harbour, aliás, muita gente usa isso sem saber que é VBScript. (Visual Basic Script)
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Hash MD5, SHA1, SHA_256, SHA_384, SHA_512, MD2, MD4

Mensagem por JoséQuintas »

testar no VB6 é interessante porque ele ajuda no fonte.

aqui mostrando métodos/propriedades
ide1.png
ide1.png (6.67 KiB) Exibido 3808 vezes

aqui mostrando somente as constantes relacionadas ao que está sendo tratado (equivalente ao #define/CH filtrados)
ide2.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Hash MD5, SHA1, SHA_256, SHA_384, SHA_512, MD2, MD4

Mensagem por Kapiaba »

Very good.

Thanks.

Regards, saludos.
Responder