What is the difference between Encoding, Encryption and Hashing?

4

I would like to understand the difference between Encoding , Encryption and Hashing and also examples of when using one or the other.

    
asked by anonymous 27.05.2015 / 17:49

2 answers

6
  

Simplistic definition

  • Encoding: This is the way character sets are mapped and manipulated.
  • Encryption: is the process of being encrypted a given (given any).
  • Hashing: is the process of generating a sequence of bits based on an input data in order to uniquely identify it.
  

Definition

  • Encoding: is the way character sets are mapped and manipulated by machines, be it a software, or a browser etc. eg In the ISO 8859-1 encoding the letter "A" is in position 65º (starting from zero ) and can be represented on the computer using a single byte value of 65.
  • Encryption: is the process of transforming information using an algorithm so that it can not be read by anyone except those who have a particular information, often referred to as a key. The result of this process is encrypted information.
  • Hashing: is the process of creating a hash that is a sequence of bits generated by a scattering algorithm, usually represented in hexadecimal basis, representing one nibble each. This sequence seeks to identify a file or information only. For example, an e-mail message, a password, a cryptographic key, or even a file.
  

Examples

Encoding:

  • UTF-8: is a type of variable-length Unicode encoding created by Ken Thompson and Rob Pike. It can represent any standard universal Unicode character, and it is also compatible with ASCII. For this reason, it is slowly being adapted as the default encoding type for email, web pages, and other places where characters are stored.
  • ISO 8859-1: is a Latin alphabet character encoding, the first part of ISO 8859. It was developed by ISO and later maintained by ISO and IEC.

Encryption:

  • DES: Fundamentally DES performs only two operations on its input: bit shift and bit substitution. The key controls exactly how this process occurs. By doing these operations repeatedly and in a non-linear manner, you get a result that can not be reverted to the original input without the use of the key.
  • IDEA: is a block cipher algorithm that makes use of 128-bit keys and has a structure similar to DES. Its implementation in software is easier than the implementation of the latter. As a block cipher, it is also symmetric. The algorithm was designed as a replacement for the Data Encryption Standard (DES). IDEA is a small revision of an earlier figure, PES (Proposed Encryption Standard); idea was originally called IPES (Improved PES).
  • RC4 is the symmetric flow cryptographic algorithm most used in software and used in popular protocols such as Secure Socket Layers (SSL) (to protect Internet traffic) and WEP (for wireless network security). RC4 is not considered one of the best cryptographic systems by cryptography enthusiasts, and in some applications can become very insecure systems.
  • Blowfish: a symmetric block cipher that can be used instead of DES or IDEA. It takes a switch of variable size, from 32 to 448 bits, making it ideal for both home and commercial applications.

Hashing:

  • MD5: is a unidirectional 128-bit hash algorithm developed by RSA Data Security, Inc., described in RFC 1321, and widely used peer-to-peer (P2P) or Peer-to-Peer English) in file integrity and logins checking.
  • SHA: The SHA (Secure Hash Algorithm) family is related to cryptographic (message digest) functions. The SHA-1 is used in a wide variety of applications and security protocols, including TLS, SSL, PGP, SSH, S / MIME and IPSec. SHA-1 was considered the successor to MD5. Both have proven vulnerabilities.

Sources of SOpt itself:

Encryption Tag

Tag hash

Tag character-encoding

How to safely have password hash?

    
27.05.2015 / 18:08
3

Encoding , sometimes called "serialization", is to get some information (eg a set of characters) and represent it ("encode" it) by means of a sequence of symbols (eg, an array of bytes). Usually when talking about encoding is referring to character encoding ("character encoding"), which is like abstract texts (sequences of #

) are expressed in bytes (either for transport or for internal processing).

29.05.2015 / 05:13