fundo
SHA1: Um dos motivos pelo qual o Git é tão seguro, entenda.

A sigla "SHA'' significa secure hash algorithm (algoritmo de hash seguro), esse sistema foi criado por nada mais nada menos que a NSA (Agência nacional dos EUA). Para que eu consiga passar da forma mais simples possível (pelo menos nesse início), o SHA1 embaralha determinado arquivo, imagem ou texto para que seja gerado um conjunto de caracteres identificadores, caracteres esses que possuem 40 dígitos.Esses quarenta dígitos são sempre únicos. Se você pegar um texto enorme e passar ele por esse algoritmo, ele vai gerar esse conjunto de caracteres, se você alterar uma vírgula que seja desse texto, já será gerado outro conjunto. 

Mas o que acontece se eu gerar um texto, modificar ele e voltar a versão anterior? Isso já está resolvido! Mas como é chato só ficar lendo, vamos abrir o bash e testar tudo. 

Criei uma pasta com um arquivo .txt dentro e abri essa pasta no bash. 

Agora vamos digitar: 

Pressionar enter e ver o que acontece.

Se você tiver paciência pode contar os caracteres, mas tem quarenta. Se você já usou o git para github, por exemplo,  já deve ter se deparado com esses caracteres embaralhados e nunca se deu conta do que era. Agora você sabe, é o sha1. 

Ao fazermos um commit para o github, geralmente nos é gerado um desses. Quando modificamos qualquer coisa no arquivo ou pasta, isso já é gerado um outro conjunto. Agora vamos modificar o arquivo e voltar para versão anterior e ver com o sha fica: 

Agora vamos modificar algo: 

Perceba que os conjuntos são totalmente diferentes

*Antes da modificação:

*Depois da modificação:

*Voltando à versão anterior: 

E isso é muito inteligente e eficiente, pois qualquer coisa modificada se tem um conjunto diferente. E isso não se resume apenas aos arquivos enviados, se resume também a todos os objetos e árvores dentro do git. 

E aí gostou desse conteúdo? Além de ver sobre criptografia, você pode criar elas! Saiba mais acessando: https://amzn.to/3dXAPv6 

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *