How many times you receive a document or a file, and you need to be sure that you are reading the original version of the file? Moreover how you can trust a generic .exe, a script or whatever you receive as "attachment"?
Let's me introduce a smart solution create ad hoc for check what's behind a file.
We are talking about MD5 algorithm!
From Wikipedia
----
The MD5 algorithm is a widely used hash function producing a 128-bit hash value. Although MD5 was initially designed to be used as a cryptographic hash function, it has been found to suffer from extensive vulnerabilities. It can still be used as a checksum to verify data integrity, but only against unintentional corruption.
MD5 was designed by Ronald Rivest in 1991 to replace an earlier hash function MD4. The source code in RFC 1321 contains a "by attribution" RSA license.
Like most hash functions, MD5 is neither encryption nor encoding. It can be reversed by brute-force attack.
-----
For example you can create useful "fingerprints" of your work, and then share it.
Like this one, Click here and download a .mol2 (Histidine).
[Histidine]
@<TRIPOS>MOLECULE
Histidine
20 20 1 0 2
SMALL
GASTEIGER
****
Histidine with Main Chain as Rigid Anchor
@<TRIPOS>ATOM
1 N1 -1.0947 0.5371 1.7186 N.4 1 <1> 0.2252
2 C2 -0.9885 0.9170 0.2765 C.3 1 <1> 0.0213
3 C3 -0.2043 -0.1565 -0.4766 C.3 1 <1> 0.0354
4 C4 -2.3725 1.0376 -0.3154 C.2 1 <1> 0.0897
5 O5 -2.7546 2.1336 -0.8057 O.co2 1 <1> -0.5442
6 C6 1.1797 -0.2771 0.1153 C.2 1 <1> 0.0328
7 N7 2.2791 0.4215 -0.2757 N.pl3 1 <1> -0.3074
8 C8 1.5387 -1.0911 1.1173 C.2 1 <1> 0.0462
9 C9 3.3256 0.0285 0.4990 C.2 1 <1> 0.0853
10 N10 2.9039 -0.8872 1.3511 N.2 1 <1> -0.2465
11 H11 -1.6259 1.2643 2.2287 H 1 <1> 0.2001
12 O12 -3.1452 0.0423 -0.3188 O.co2 1 <1> -0.5442
13 H13 -0.1461 0.4545 2.1242 H 1 <1> 0.2001
14 H14 -0.4726 1.8710 0.1898 H 1 <1> 0.0918
15 H15 -0.7202 -1.1105 -0.3899 H 1 <1> 0.0385
16 H16 -0.1270 0.1200 -1.5261 H 1 <1> 0.0385
17 H17 2.3126 1.1114 -1.0125 H 1 <1> 0.1528
18 H18 0.8943 -1.7774 1.6466 H 1 <1> 0.0845
19 H19 4.3357 0.4040 0.4286 H 1 <1> 0.1000
20 H20 -1.5855 -0.3703 1.8010 H 1 <1> 0.2001
@<TRIPOS>BOND
1 1 2 1
2 2 3 1
3 2 4 1
4 3 6 1
5 4 5 ar
6 6 7 1
7 6 8 2
8 7 9 1
9 8 10 1
10 9 10 2
11 1 11 1
12 4 12 ar
13 1 13 1
14 2 14 1
15 3 15 1
16 3 16 1
17 7 17 1
18 8 18 1
19 9 19 1
20 1 20 1
@<TRIPOS>SUBSTRUCTURE
1 **** 1 TEMP 0 **** **** 0 ROOT
@<TRIPOS>SET
ANCHOR STATIC ATOMS <user> **** Anchor Atom Set
1 2
RIGID STATIC BONDS <user> **** Rigid Bond Set
2 1 3
[end]
But how you can trust this file are you going to download is really the "file" we are talking here?
Well with MD5 you can be always sure of this origin, because I have assigned the MD5:
MD5 (Histidine.mol2) = 8926aab5d9b3e9a88f642a25a50c6146
If you download it you can see by your self what is the MD5 without opening the file!
From your terminal just run:$ md5 Histidine.mol2
and you get this output:$ MD5 (Histidine.mol2) = 8926aab5d9b3e9a88f642a25a50c6146
So now you are pretty sure: this is an information strictly related to your file, not only this but this is an unique information!
(Yes it can reversed by a brute force attack but isn't easy and waste a lot of time/computing power!)
If you add only a "space" at end of the file the hash of this file will change like this:$ md5 Histidine.mol2$ MD5 (Histidine.mol2) = 0084ce853a6308b4959bd711f1172b80
The fingerprints change brutally!from 8926aab5d9b3e9a88f642a25a50c6146to 0084ce853a6308b4959bd711f1172b80
There isn't anymore any relation between two strings! And we have just added a single space at end of .mol2 file!
No one could never modify this info or even try to understand what was the info behind such fingerprints.
There was a lot of applications with this way to "signing" a file, or to check the originality of a file.
For example, you can avoid any modify to your file just because every edit will dramatically change the fingerprints itself!
One of the best option (and easy to use) to trust just a file that is for you, and a way to validate an intact information.
Subscribe Publish0x. Send Tips and create your Blog!
https://www.publish0x.com?a=olej7RvajN