PHP crypt() Function
Complete PHP String Reference
Definition and Usage
The crypt() function returns a string encrypted using DES, Blowfish,
or MD5 algorithms.
This function behaves different on different operating systems, some operating
systems supports more than one type of encryption. PHP checks what algorithms
are available and what algorithms to use when it is installed.
The exact algorithm depends on the format and length of the salt parameter.
Salts help make the encryption more secure by increasing the number
of encrypted strings that can be generated for one specific string with one
specific
encryption method.
There are some constants that are used together with the crypt() function.
The value of these constants are set by PHP when it is installed.
Constants:
- [CRYPT_SALT_LENGTH] - The length of the default encryption. With
standard DES encryption, the length is 2
- [CRYPT_STD_DES] - Value is 1 if the standard DES algorithm is supported, 0
otherwise. The Standard DES-based encryption has a two character salt
- [CRYPT_EXT_DES] - Value is1 if the extended DES algorithm is supported, 0
otherwise. The Extended DES encryption has a nine character salt
- [CRYPT_MD5] - Value is 1 if the MD5 algorithm is supported, 0 otherwise.
The MD5
encryption has a 12 character salt starting with $1$
- [CRYPT_BLOWFISH] - Value is 1 if the Blowfish algorithm is supported, 0
otherwise. The Blowfish encryption has a 16 character salt starting with $2$
or $2a$
Syntax
| Parameter |
Description |
| str |
Required. Specifies the string to be encoded |
| salt |
Optional. A string used to increase the number of
characters encoded, to make the encoding more secure. If the salt argument is not provided, one will be randomly generated by PHP each
time you call this function.
|
Tips and Notes
Note: There is no decrypt function. The crypt() function uses a one-way algorithm.
Example 1
In this example we will test the different algorithms:
<?php
if (CRYPT_STD_DES == 1)
{
echo "Standard DES: ".crypt("hello world")."\n<br />";
}
else
{
echo "Standard DES not supported.\n<br />";
}
if (CRYPT_EXT_DES == 1)
{
echo "Extended DES: ".crypt("hello world")."\n<br />";
}
else
{
echo "Extended DES not supported.\n<br />";
}
if (CRYPT_MD5 == 1)
{
echo "MD5: ".crypt("hello world")."\n<br />";
}
else
{
echo "MD5 not supported.\n<br />";
}
if (CRYPT_BLOWFISH == 1)
{
echo "Blowfish: ".crypt("hello world");
}
else
{
echo "Blowfish DES not supported.";
}
?>
|
The output of the code above could be (depending on the operating system):
Standard DES: $1$r35.Y52.$iyiFuvM.zFGsscpU0aZ4e.
Extended DES not supported.
MD5: $1$BN1.0I2.$8oBI/4mufxK6Tq89M12mk/
Blowfish DES not supported.
|
Complete PHP String Reference

The Altova MissionKit is an integrated suite of tools ideal for:
- XML development
- Web & Web services development
- Data mapping & integration
- Rendering & publishing XML & database data
- XBRL validation, taxonomy editing, transformation & rendering
The MissionKit for XML Developers includes XMLSpy® - the industry-leading XML editor; MapForce® - a
graphical data mapping, conversion, and integration tool; StyleVision® - a visual XSLT stylesheet designer;
DiffDog® - an XML-aware diff/merge tool; and 2 additional tools.
Try all 6 products free for 30 days!
Download a fully-functional free trial
|
|
|
|