EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

PHP crypt()

Home » Software Development » Software Development Tutorials » PHP Tutorial » PHP crypt()

PHP crypt()

Introduction to PHP crypt()

PHP crypt() function is a part of PHP string references whose main function is to return a hashed string using some special algorithms. PHP crypt() function is associated with the algorithms like DES, Blowfish or MD5 algorithms for its overall network and cryptographic encryption and decryption of string being passed from the crypt() function. Crypt() function vary from one function to another function in a way that behavior gets transformed accordingly to different operating system. It checks for all the available algorithms or if any need is there to install new algorithm for encryption.

Syntax:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

crypt(str,salt)

  • The syntax flows in a way that crypt function is a function which passes string and salt as a parameter.
  • str is a required string which specifies the string needs to be hashed in a one-way fashion.
  • salt is another optional parameter where a salt string to base the hashing on.
  • But PHP with versions of 5+ have salt as a parameter to pass carrying different algorithms like blowfish nodes, standard DES algorithm, extended DES and the blowfish algorithm.

How crypt() Function works in PHP?

  • Crypt is a one-way string hashing.
  • Salt as a parameter gets passed to crypt() function is optional. But if salt parameter is not passed then that key will be considered as weak hash.
  • To perform a good security, it is important to pass a very strong hashed key. A strong hash which is used to generate a strong salt and then applies a proper rounds of hash key rotation in a round robin fashion uses a password_hash.
  • Using a password_hash is a recommended method in a way it acts as a wrapper on top of the algorithm and makes the algorithm compatible with one-way hashing string.
  • As mentioned, these crypt() function works on an operating system which support many different operating systems which acts as a key.
  • The salt parameter passed with the string to the crypt function triggers to the salt algorithm. These functionalities work with the 4 version of PHP but the versions more than 5 .
  • PHP has a capability of creating an auto-generated key if no DES salt parameter is present. If in case it is related to the twelve-character key, then MD5 algorithm will create a one-way hashed key.

PHP crypt() Constants

There are following constants for crypt() function which have some values set as 0 or 1 depending on whether the given type of crypt constants is available.

1. CRYPT_STD_DES

First constant which has a two-character salt parameter passed from the alphabet. Also, supports for the values supporting the digits with numbers of uppercase 0-9 and alphabets with upper case A-Z and lower case alphabets like a-z. crypt function will get failed if some invalid characters will be used while passing the salt parameter.

Example: A program to illustrate CRYPT_STD_DES constant.

Code:

<?php
if (CRYPT_STD_DES == 1)
{
echo "Standard DES: ".crypt('educba','string')."\n";
}
else
{
echo "Do not support standard DES.\n";
}
?>

Output:

php crypt() 1

2. CRYPT_EXT_DES

This constant is a type of extension to the DES based hashing function. If the salt parameter being passed has a nine character string followed by the parameter of 4 bytes, then only the algorithm will get satisfied.

Example: A program to illustrate CRYPT_EXT_DES constant.

Code:

<?php
if (CRYPT_EXT_DES == 1)
{
echo "Extended DES: ".crypt('anu','_D8..dutta')."\n";
}
else
{
echo "It do not support for Extended DES.\n";
}
?>

Output:

php crypt() 2

3. CRYPT_MD5

This constant MD5 works with hashing function including crypt parallelly with a character of salt parameter having a length of twelve character.

Example: A program to illustrate CRYPT_MD5 constant.

Code:

<?php
if (CRYPT_MD5 == 1)
{
echo "MD5: ".crypt('mansi','$1$trying$')."\n";
}
else
{
echo "Do not support for MD5.\n";
}
?>

Output:

MD5

4. CRYPT_BLOWFISH

This constant support for the function with salt parameter containing some cost parameter ranging from “$” to 22. If the parameter value does not lie within the specified range, then it will return a string of zero-length. The cost parameter is considered as twice if the base of logarithmic value for the illustrated blowfish-based hashing algorithm. PHP versions of 5 and above supports for the given constant.

Popular Course in this category
PHP Training (5 Courses, 3 Project)5 Online Courses | 3 Hands-on Project | 28+ Hours | Verifiable Certificate of Completion | Lifetime Access
4.5 (5,726 ratings)
Course Price

View Course

Related Courses
Java Servlet Training (6 Courses, 12 Projects)All in One Software Development Bundle (600+ Courses, 50+ projects)

Example: A program to illustrate CRYPT_BLOWFISH constant.

Code:

<?php
if (CRYPT_BLOWFISH == 1)
{
echo "Blowfish: ".crypt('sunrise','$1b$08$mkstringexforsaltparam$')."\n";
}
else
{
echo "It do not support for Blowfish.\n";
}
?>

Output:

BLOWFISH

5. CRYPT_SHA256

SHA-256 is a constant which is part of the algorithm with a hash value of sixteen character. If in case the string gets started with the round of $N hen it indicates number of times hashed function gets called and executes with the optimization and cost factor like Blowfish algorithm. Also, if the selection of numbers does not lie outside the range then the next value of the range will get approximation to the closest value of the range.

Example: A program to illustrate CRYPT_SHA256 constant.

Code:

<?php
if (CRYPT_SHA256 == 1)
{
echo "SHA-256: ".crypt('sunfeast','$8$rounds=8000$examplestringforsaltofsalt$')."\n"; }
else
{
echo "It do not support for CRYPT_SHA256.\n";
}
?>

Output:

SHA 256

6. CRYPT_SHA512

This is a constant which is prefixed with some value like 6$. If the round function gets started with the value of taken round of number of salts , then it points for the optimized value same as Blowfish function. Also, it can be said that behavior of the constant is same as SHA-256 constant with just some mere differences.

Example: A program to illustrate CRYPT_SHA512 constant.

Code:

<?php
if (CRYPT_SHA512 == 1)
{
echo "SHA-512: ".crypt('things','$9$rounds=9000$xamplestringof90salt$');
}
else
{
echo " It donot support for CRYPT_SHA512 .";
}
?>

Output:

php crypt() 6

Note: The system with version of 5.3.0 contains implementation of its own type and will use that implementation if that system lacks the install then it will look for the constant and its related algorithm for self-installation and implementation.

Conclusion

PHP crypt() function can encrypt the hashed string and is a one directional cryptographic method supporting the mentioned algorithm and it specifically supports for encryption not for decryption that is why it is named as one-directional algorithm.

Recommended Articles

This is a guide to PHP crypt(). Here we discuss the introduction to PHP crypt(), how crypt() function works with its constants. You may also have a look at the following articles to learn more –

  1. Validation in PHP
  2. PHP Serialize
  3. PHP levenshtein()
  4. PHP parse_str()

All in One Software Development Bundle (600+ Courses, 50+ projects)

600+ Online Courses

50+ projects

3000+ Hours

Verifiable Certificates

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
PHP Tutorial
  • Functions
    • Functions in PHP
    • PHP Math Functions
    • PHP Recursive Function
    • PHP String Functions
    • Hashing Function in PHP
    • Date Function in PHP
    • PHP Anonymous Function
    • Calendar in PHP
    • PHP Call Function
    • PHP Pass by Reference
    • PHP ucfirst()
    • PHP ucwords()
    • trim() in PHP
    • isset() Function in PHP
    • PHP replace
    • PHP fpm
    • PHP strpos
    • preg_match in PHP
    • PHP preg_replace()
    • PHP ob_start()
    • PHP Reflection
    • PHP Split String
    • PHP URL
    • PHP preg_match_all
    • PHP strtoupper()
    • PHP preg_split()
    • PHP substr_replace()
    • PHP setlocale()
    • PHP substr_count()
    • PHP Serialize
    • PHP strlen()
    • PHP async
    • PHP Date Time Functions
    • PHP timezone
    • PHP Data Object
    • print_r() in PHP
    • PHP header()
    • PHP strip_tags()
    • PHP chop()
    • PHP MD5()
    • PHP unset()
    • PHP crypt()
    • PHP wordwrap()
    • PHP is_null()
    • PHP strtok()
    • PHP bin2hex()
    • PHP parse_str()
    • PHP levenshtein()
    • PHP addslashes()
    • PHP strtotime
    • PHP sha1()
    • PHP explode()
    • PHP sscanf()
    • PHP require_once
    • PHP Zip Files
    • PHP $_SERVER
    • PHP $_POST
    • PHP Include and Require
    • PHP POST Method
  • PHP Basic
    • Introduction To PHP
    • What is PHP
    • PHP Keywords
    • Advantages of PHP
    • Career In PHP
    • Comments in PHP
    • PHP Commands
    • PHP Frameworks
    • PHP Compiler
    • Variables in PHP
    • PHP Superglobal Variables
    • PHP Versions
    • Object in PHP
    • What is Drupal
    • Top PHP Frameworks
    • WebStorm IDE
    • What is phpMyAdmin?
    • PhpStorm
    • Install phpMyAdmin
    • Phalcon Model
  • Data Types
    • PHP Data Types
    • PHP Integer
    • PHP Booleans
  • Operators
    • PHP Operators
    • Arithmetic Operators in PHP
    • Comparison Operators in PHP
    • Logical Operators in PHP
    • Bitwise Operators in PHP
    • Ternary Operator in PHP
    • PHP String Operators
  • Control Statements
    • Control Statement in PHP
    • PHP if Statement
    • if else Statement in PHP
    • elseif in PHP
    • PHP Switch Statement
    • Continue in PHP
    • Break in PHP
  • Loops
    • PHP Loops
    • For Loop in PHP
    • PHP Do While Loop
    • PHP While Loop
    • While Loop in PHP
    • Foreach Loop in PHP
  • Constructor
    • Constructor in PHP
    • Destructor in PHP
  • State Management
    • Cookie in PHP
    • Sessions in PHP
  • Array
    • What is PHP Array
    • Arrays in PHP
    • 2D Arrays in PHP
    • Associative Array in PHP 
    • Multidimensional Array in PHP
    • Indexed Array in PHP
    • PHP Array Functions
    • PHP unset Array
    • PHP Append Array
    • PHP Array Search
    • PHP Split Array
    • PHP array_push()
    • PHP array_pop()
  • Advanced
    • Overloading in PHP
    • Overriding in PHP
    • Method Overloading in PHP
    • Inheritance in PHP
    • Multiple Inheritance in PHP
    • PHP Interface
    • Encapsulation in PHP
    • PHP Constants
    • PHP Magic Constants
    • PHP Regular Expressions
    • PHP GET Method
    • PHP Annotations
    • PHP Encryption
    • PHP file Functions
    • PHP readfile
    • PHP?Write File
    • PHP Append File
    • PHP Type Hinting
    • PHP Filters
    • PHP Float
    • PHP Form
    • PHP Form Validation
    • Sorting in PHP
    • PHP usort()
    • PHP Stack Trace
    • PHP Stack Overflow
    • PHP Pagination
    • PHP implode
    • Polymorphism in PHP
    • Abstract Class in PHP
    • PHP Final Class
    • PHP Custom Exception
    • error_reporting() in PHP
    • PHP Log Errors
    • Access Modifiers in PHP
    • PHP Change Date Format
    • Static Method in PHP
    • PHP File Handling
    • PHP Output Buffering
    • Get IP Address in PHP
    • Upload a File in PHP
    • String in PHP
    • Public Function in PHP
    • Private in PHP
    • Protected in PHP
    • basename in PHP
    • Validation in PHP
    • PHP mail()
    • PHP Email Form
    • PHP Directory
    • PHP Create Session
    • PHP include_once
    • PHP json_decode
    • PHP XMLWriter
    • PHP XML Reader
    • PHP XML Parser
    • PHP XML into Array
    • Phalcon Framework
  • Programs
    • Patterns in PHP
    • Star Patterns in PHP
    • Swapping in PHP
    • Fibonacci Series PHP
    • Factorial in PHP
    • Reverse String in PHP
    • Square Root in PHP
    • Random Number Generator in PHP
    • Palindrome in PHP
    • Prime Numbers in PHP
    • Armstrong Number in PHP
    • Socket Programming in PHP
    • Login Page in PHP
    • PHP Login Template
    • PHP Object to String
  • Database
    • PHP Database Connection
    • How to Connect Database to PHP
  • Interview Questions
    • PHP Interview Questions
    • PHP OOP Interview Questions
    • CakePHP Interview Questions
    • Core PHP Interview Questions

Related Courses

PHP Training Course

Java Servlet Training

Software Development Course Training

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - PHP Training Course Learn More