国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

php常用加密算法大全aes、3des、rsa等

這篇具有很好參考價值的文章主要介紹了php常用加密算法大全aes、3des、rsa等。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、可解密加解密算法

1、aes 加解密算法

2、舊3des加解密方法

?3、新3des加解密方法

4、rsa公私鑰加解密、簽名驗簽方法

5、自定義加密算法1?

6、自定義加密算法2

7、自定義加密算法3

二、不可解密加密算法?

1、md5算法?

2、crypt算法

3、sha1算法

5、hash 算法

6、 password_hash算法文章來源地址http://www.zghlxwxcb.cn/news/detail-700823.html


一、可解密加解密算法

1、aes 加解密算法
class AES {
    private $key;
    private $iv;
 
    public function __construct($key, $iv) {
        $this->key = $key;
        $this->iv = $iv;
    }
 
    public function encrypt($data) {
        $encrypted = openssl_encrypt($data, 'AES-128-ECB', $this->key, OPENSSL_RAW_DATA);
        return base64_encode($encrypted);
    }
 
    public function decrypt($encryptedData) {
        $decrypted = openssl_decrypt(base64_decode($encryptedData), 'AES-128-ECB', $this->key, OPENSSL_RAW_DATA);
        return $decrypted;
    }
 
    public function encryptCBC($data) {
        $encrypted = openssl_encrypt($data, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA, $this->iv);
        return base64_encode($encrypted);
    }
 
    public function decryptCBC($encryptedData) {
        $decrypted = openssl_decrypt(base64_decode($encryptedData), 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA, $this->iv);
        return $decrypted;
    }
}
// 使用示例:
$key = '0123456789abcdef'; // 16字節(jié)長度的密鑰
$iv = 'fedcba9876543210'; // 16字節(jié)長度的初始向量
$aes = new AES($key, $iv);
$data = 'Hello, World!';
$encryptedECB = $aes->encrypt($data);
echo 'AES-128-ECB加密后的數(shù)據(jù):' . $encryptedECB . "\n";
$decryptedECB = $aes->decrypt($encryptedECB);
echo 'AES-128-ECB解密后的數(shù)據(jù):' . $decryptedECB . "\n";
$encryptedCBC = $aes->encryptCBC($data);
echo 'AES-256-CBC加密后的數(shù)據(jù):' . $encryptedCBC . "\n";
$decryptedCBC = $aes->decryptCBC($encryptedCBC);
echo 'AES-256-CBC解密后的數(shù)據(jù):' . $decryptedCBC . "\n";
2、舊3des加解密方法
<?php
class Encrypt_3DES
{
    //加密秘鑰,
    private $_key;
    private $_iv;
    public function __construct($key, $iv)
    {
        $this->_key = $key;
        $this->_iv = $iv;
    }
    /**
     * 對字符串進行3DES加密
     * @param string 要加密的字符串
     * @return mixed 加密成功返回加密后的字符串,否則返回false
     */
    public function encrypt3DES($str)
    {
        $td = mcrypt_module_open(MCRYPT_3DES, "", MCRYPT_MODE_CBC, "");
        if ($td === false) {
            return false;
        }
        //檢查加密key,iv的長度是否符合算法要求
        $key = $this->fixLen($this->_key, mcrypt_enc_get_key_size($td));
        $iv = $this->fixLen($this->_iv, mcrypt_enc_get_iv_size($td));
        if (mcrypt_generic_init($td, $key, $iv) !== 0) {
            return false;
        }
        $result = mcrypt_generic($td, $str);
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        return base64_encode($result); // 對加密后的結(jié)果進行Base64編碼
    }
    /**
     * 對加密的字符串進行3DES解密
     * @param string 要解密的字符串
     * @return mixed 解密成功返回解密后的字符串,否則返回false
     */
    public function decrypt3DES($str)
    {
        $td = mcrypt_module_open(MCRYPT_3DES, "", MCRYPT_MODE_CBC, "");
        if ($td === false) {
            return false;
        }
        //檢查加密key,iv的長度是否符合算法要求
        $key = $this->fixLen($this->_key, mcrypt_enc_get_key_size($td));
        $iv = $this->fixLen($this->_iv, mcrypt_enc_get_iv_size($td));
        if (mcrypt_generic_init($td, $key, $iv) !== 0) {
            return false;
        }
        $str = base64_decode($str); // 對加密字符串進行Base64解碼
        $result = mdecrypt_generic($td, $str);
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        return $this->strUnPad($result);
    }
    /**
     * 返回適合算法長度的key,iv字符串
     * @param string $str key或iv的值
     * @param int $td_len 符合條件的key或iv長度
     * @return string 返回處理后的key或iv值
     */
    private function fixLen($str, $td_len)
    {
        $str_len = strlen($str);
        if ($str_len > $td_len) {
            return substr($str, 0, $td_len);
        } else if ($str_len < $td_len) {
            return str_pad($str, $td_len, "\0");
        }
        return $str;
    }
    /**
     * 返回適合算法的分組大小的字符串長度,末尾使用\0補齊
     * @param string $str 要加密的字符串
     * @param int $td_group_len 符合算法的分組長度
     * @return string 返回處理后字符串
     */
    private function strPad($str, $td_group_len)
    {
        $padding_len = $td_group_len - (strlen($str) % $td_group_len);
        return str_pad($str, strlen($str) + $padding_len, "\0");
    }
    /**
     * 返回適合算法的分組大小的字符串長度,去除末尾的\0
     * @param string $str 要解密的字符串
     * @return string 返回處理后字符串
     */
    private function strUnPad($str)
    {
        return rtrim($str, "\0");
    }
}
$key = '1a2bc@';
$iv = '12345678'; // 將iv改為字符串形式
$str = "abcd123";
$encrypt = new Encrypt_3DES($key, $iv);
$jiaData = $encrypt->encrypt3DES($str);
$jieData = $encrypt->decrypt3DES($jiaData);
echo "未加密字符串:".$str;
echo "\n";
echo "加密字符串:".$jiaData;
echo "\n";
echo "解密密字符串:".$jieData;
?3、新3des加解密方法
<?php
class TripleDes {
    private $key;
    private $iv;
 
    public function __construct($key, $iv) {
        $this->key = $key;
        $this->iv = $iv;
    }
 
    public function encrypt($data) {
        $encrypted = openssl_encrypt($data, 'des-ede3-cbc', $this->key, OPENSSL_RAW_DATA, $this->iv);
        return base64_encode($encrypted);
    }
 
    public function decrypt($encryptedData) {
        $decrypted = openssl_decrypt(base64_decode($encryptedData), 'des-ede3-cbc', $this->key, OPENSSL_RAW_DATA, $this->iv);
        return $decrypted;
    }
}
$key = "2312342132"; 
$iv = "12345678"; // 初始化向量長度必須為8位
$des = new TripleDes($key, $iv);
$data = "adsadb123";
echo "要加密的數(shù)據(jù):{$data}\n";
$encrypted = $des->encrypt($data);
echo "加密后的數(shù)據(jù):" . $encrypted . "\n";
$decrypted = $des->decrypt($encrypted);
echo "解密后的數(shù)據(jù):" . $decrypted . "\n";
4、rsa公私鑰加解密、簽名驗簽方法
<?php
 
 
/**
 * RSA簽名類
 */
class Rsa
{
    public $publicKey = '';
    public $privateKey = '';
    private $_privKey;
 
    /**
     * * private key
     */
    private $_pubKey;
 
    /**
     * * public key
     */
    private $_keyPath;
 
    /**
     * * the keys saving path
     */
 
    /**
     * * the construtor,the param $path is the keys saving path
     * @param string $publicKey  公鑰
     * @param string $privateKey 私鑰
     */
    public function __construct($publicKey = null, $privateKey = null)
    {
 
        $this->setKey($publicKey, $privateKey);
    }
 
    /**
     * 設(shè)置公鑰和私鑰
     * @param string $publicKey  公鑰
     * @param string $privateKey 私鑰
     */
    public function setKey($publicKey = null, $privateKey = null)
    {
        if (!is_null($publicKey)) {
            $this->publicKey = $publicKey;
        }
        if (!is_null($privateKey)) {
            $this->privateKey = $privateKey;
        }
    }
 
    /**
     * * setup the private key
     */
    private function setupPrivKey()
    {
        if (is_resource($this->_privKey)) {
            return true;
        }
        $pem = chunk_split($this->privateKey, 64, "\n");
        $pem = "-----BEGIN PRIVATE KEY-----\n" . $pem . "-----END PRIVATE KEY-----\n";
 
        $this->_privKey = openssl_pkey_get_private($pem);
        return true;
    }
 
    /**
     * * setup the public key
     */
    private function setupPubKey()
    {
        if (is_resource($this->_pubKey)) {
            return true;
        }
        $pem = chunk_split($this->publicKey, 64, "\n");
        $pem = "-----BEGIN PUBLIC KEY-----\n" . $pem . "-----END PUBLIC KEY-----\n";
        $this->_pubKey = openssl_pkey_get_public($pem);
        return true;
    }
 
    /**
     * * encrypt with the private key
     */
    public function privEncrypt($data)
    {
        if (!is_string($data)) {
            return null;
        }
        $this->setupPrivKey();
 
        $r = openssl_private_encrypt($data, $encrypted, $this->_privKey);
        if ($r) {
            return base64_encode($encrypted);
        }
        return null;
    }
 
    /**
     * * decrypt with the private key
     */
    public function privDecrypt($encrypted)
    {
        if (!is_string($encrypted)) {
            return null;
        }
        $this->setupPrivKey();
        $encrypted = base64_decode($encrypted);
        $r = openssl_private_decrypt($encrypted, $decrypted, $this->_privKey);
        if ($r) {
            return $decrypted;
        }
        return null;
    }
 
    /**
     * * encrypt with public key
     */
    public function pubEncrypt($data)
    {
        if (!is_string($data)) {
            return null;
        }
        $this->setupPubKey();
        $r = openssl_public_encrypt($data, $encrypted, $this->_pubKey);
        if ($r) {
            return base64_encode($encrypted);
        }
        return null;
    }
 
    /**
     * * decrypt with the public key
     */
    public function pubDecrypt($crypted)
    {
        if (!is_string($crypted)) {
            return null;
        }
        $this->setupPubKey();
        $crypted = base64_decode($crypted);
        $r = openssl_public_decrypt($crypted, $decrypted, $this->_pubKey);
        if ($r) {
            return $decrypted;
        }
        return null;
    }
 
    /**
     * 構(gòu)造簽名
     * @param string $dataString 被簽名數(shù)據(jù)
     * @return string
     */
    public function sign($dataString)
    {
        $this->setupPrivKey();
        $signature = false;
        openssl_sign($dataString, $signature, $this->_privKey);
        return base64_encode($signature);
    }
 
    /**
     * 驗證簽名
     * @param string $dataString 被簽名數(shù)據(jù)
     * @param string $signString 已經(jīng)簽名的字符串
     * @return number 1簽名正確 0簽名錯誤
     */
    public function verify($dataString, $signString)
    {
        $this->setupPubKey();
        $signature = base64_decode($signString);
        $flg = openssl_verify($dataString, $signature, $this->_pubKey);
        return $flg;
    }
 
    public function __destruct()
    {
        is_resource($this->_privKey) && @openssl_free_key($this->_privKey);
        is_resource($this->_pubKey) && @openssl_free_key($this->_pubKey);
    }
}
$publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKZ1mKTymRoGKnHiP1xAy4aiyt5r0BscCZnDAonCrMFZ4kBGriPNHxEaLr5lfBnMKw7k6i+2dsFPSEZooTvqtPUCAwEAAQ==';
$privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEApnWYpPKZGgYqceI/XEDLhqLK3mvQGxwJmcMCicKswVniQEauI80fERouvmV8GcwrDuTqL7Z2wU9IRmihO+q09QIDAQABAkBunx3nGHXYjppsfn++7iyTd+I7+Agfy/0xWyB3rpEiGGgfemjcRFaeq5SC2vUNXsrEOY5gbUSQmFxH//Cym18NAiEA1z1cZx/Q9cbIjFPwp1a+K5CVFDXDcfbi/AQgAkVs0/cCIQDF+2fr23AoBslcOC4S0yAx94AbgxCntYuRqztxybsrcwIgMW86ZcT87TX2oaQ1xXk6vC68zqN6fBZEE7Wu1Fa1pAkCIElmOJP3qfAc/AAlj+dIwLHlqWgJwl3674CU9Bfui2bDAiEA0CKJpF8x7KANCcopEQC93PsbIztuML322LOfDV1Lw/k=';
$rsa=new Rsa($publicKey,$privateKey);
$str="abc";
echo "原始數(shù)據(jù):".$str;
echo "<br/><hr>";
$res=$rsa->privEncrypt($str);
echo "私鑰加密數(shù)據(jù):".$res;
echo "<br/>";
 
$res2=$rsa->pubDecrypt($res);
echo "公鑰解密數(shù)據(jù):".$res2;
echo "<br/><hr>";
 
 
$res3=$rsa->pubEncrypt($str);
echo "公鑰加密數(shù)據(jù):".$res3;
echo "<br/>";
 
$res4=$rsa->privDecrypt($res3);
echo "私鑰解密數(shù)據(jù):".$res4;
echo "<br/><hr>";
 
echo "簽名數(shù)據(jù):".$str;
$res5=$rsa->sign($str);
echo "<br/>";
echo "簽名結(jié)果:".$res5;
$res6=$rsa->verify($str,$res5);
echo "<br/>";
echo "驗證簽結(jié)果:".$res6;
5、自定義加密算法1?

function encrypt($data, $key)
{
    // 將字符串轉(zhuǎn)化為字節(jié)數(shù)組
    $data = str_split($data);

    // 將密鑰轉(zhuǎn)化為字節(jié)數(shù)組
    $key = str_split($key);

    // 加密結(jié)果
    $result = '';

    foreach ($data as $index => $char) {
        // 獲取密鑰字符的 ASCII 值
        $keyChar = ord($key[$index % count($key)]);

        // 將字符的 ASCII 值與密鑰字符的 ASCII 值進行異或運算
        $encryptedChar = ord($char) ^ $keyChar;

        // 將加密后的字符拼接到結(jié)果字符串中
        $result .= chr($encryptedChar);
    }

    // 將結(jié)果字符串轉(zhuǎn)換為 base64 編碼
    $result = base64_encode($result);

    // 返回加密結(jié)果
    return $result;
}

function decrypt($data, $key)
{
    // 將 base64 編碼字符串轉(zhuǎn)換為普通字符串
    $data = base64_decode($data);

    // 將字符串轉(zhuǎn)化為字節(jié)數(shù)組
    $data = str_split($data);

    // 將密鑰轉(zhuǎn)化為字節(jié)數(shù)組
    $key = str_split($key);

    // 解密結(jié)果
    $result = '';

    foreach ($data as $index => $char) {
        // 獲取密鑰字符的 ASCII 值
        $keyChar = ord($key[$index % count($key)]);

        // 將字符的 ASCII 值與密鑰字符的 ASCII 值進行異或運算
        $decryptedChar = ord($char) ^ $keyChar;

        // 將解密后的字符拼接到結(jié)果字符串中
        $result .= chr($decryptedChar);
    }

    // 返回解密結(jié)果
    return $result;
}

// 使用示例
$data = "Hello, World!";
$key = "secretKey";
$encryptedData = encrypt($data, $key);
echo "加密后的數(shù)據(jù): " . $encryptedData . "\n";
$decryptedData = decrypt($encryptedData, $key);
echo "解密后的數(shù)據(jù): " . $decryptedData . "\n";
6、自定義加密算法2

function encrypt($data, $key) {
    $encryptedData = '';
    $keyLength = strlen($key);
    $dataLength = strlen($data);
    for ($i = 0; $i < $dataLength; $i++) {
        $encryptedData .= chr(ord($data[$i]) ^ ord($key[$i % $keyLength]));
    }
    return base64_encode($encryptedData);
}
function decrypt($data, $key) {
    $data = base64_decode($data);
    $decryptedData = '';
    $keyLength = strlen($key);
    $dataLength = strlen($data);
    for ($i = 0; $i < $dataLength; $i++) {
        $decryptedData .= chr(ord($data[$i]) ^ ord($key[$i % $keyLength]));
    }
    return $decryptedData;
}
// 使用示例
$data = 'Hello, World!';
$key = 'secretKey';
$encryptedData = encrypt($data, $key);
echo '加密后的數(shù)據(jù): ' . $encryptedData . "\n";
$decryptedData = decrypt($encryptedData, $key);
echo '解密后的數(shù)據(jù): ' . $decryptedData . "\n";
7、自定義加密算法3
function encrypt($data, $key) {
    $encryptedData = '';
    $keyLength = strlen($key);
    $dataLength = strlen($data);
    for ($i = 0; $i < $dataLength; $i++) {
        $encryptedData .= chr((ord($data[$i]) + ord($key[$i % $keyLength])) % 256);
    }
    return bin2hex($encryptedData);
}
function decrypt($data, $key) {
    $data = hex2bin($data);
    $decryptedData = '';
    $keyLength = strlen($key);
    $dataLength = strlen($data);
    for ($i = 0; $i < $dataLength; $i++) {
        $decryptedData .= chr((ord($data[$i]) - ord($key[$i % $keyLength]) + 256) % 256);
    }
    return $decryptedData;
}
// 使用示例
$data = 'Hello, World!';
$key = 'secretKey';
$encryptedData = encrypt($data, $key);
echo '加密后的數(shù)據(jù): ' . $encryptedData . "\n";
$decryptedData = decrypt($encryptedData, $key);
echo '解密后的數(shù)據(jù): ' . $decryptedData . "\n";

二、不可解密加密算法?

1、md5算法?
$pex='pwd';
$pwd='123456';
$pwdMd5=md5($pex.$pwd);
//校驗
$pwd=$_POST['pwd'];
$postPwdMd5=md5($pex.$pwd);
if($pwdMd5==$postPwdMd5){
    echo '密碼正確';
}else{
    echo '密碼錯誤';
}
2、crypt算法
$pex='pwd';
$pwd='123456';
$pwdMd5=crypt($pwd,$pex);
//校驗
$pwd=$_POST['pwd'];
$postPwdMd5=crypt($pwd,$pex);
if($pwdMd5==$postPwdMd5){
    echo '密碼正確';
}else{
    echo '密碼錯誤';
}
3、sha1算法
$pex='pwd';
$pwd='123456';
$pwdMd5=sha1($pwd,$pex);
//校驗
$pwd=$_POST['pwd'];
$postPwdMd5=sha1($pwd,$pex);
if($pwdMd5==$postPwdMd5){
    echo '密碼正確';
}else{
    echo '密碼錯誤';
}
5、hash 算法
$pex='pwd';
$pwd='123456';
$pwdMd5=hash("sha256", $pwd.$pex);
//校驗
$pwd=$_POST['pwd'];
$postPwdMd5=hash("sha256", $pwd.$pex);
if($pwdMd5==$postPwdMd5){
    echo '密碼正確';
}else{
    echo '密碼錯誤';
}
6、 password_hash算法
<?php
$pex='pwd';
$pwd='123456';
$pwdMd5=password_hash($pwd.$pex,PASSWORD_BCRYPT);
//校驗
$pwd=$_POST['pwd'];
$postPwdMd5=password_verify($pwd.$pex,$pwdMd5);
if($pwdMd5==$postPwdMd5){
    echo '密碼正確';
}else{
    echo '密碼錯誤';
}

到了這里,關(guān)于php常用加密算法大全aes、3des、rsa等的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 關(guān)于Triple DES(3DES)對稱加密算法

    關(guān)于Triple DES(3DES)對稱加密算法

    一、引言 在網(wǎng)絡(luò)安全領(lǐng)域,對稱加密算法作為一種常見的加密手段,被廣泛應(yīng)用于保障數(shù)據(jù)傳輸?shù)谋C苄院屯暾?。其中,DES(Data Encryption Standard)算法作為一種經(jīng)典的對稱加密算法,由IBM于1970年代開發(fā),并于1977年被美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)確定為聯(lián)邦信息處理標(biāo)

    2024年02月04日
    瀏覽(29)
  • 【密碼算法 之一】對稱加密算法 DES \ 3DES 淺析

    【密碼算法 之一】對稱加密算法 DES \ 3DES 淺析

    ??DES(Data Encryption Standard)是1977年美國聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)中所采用的一種對稱密碼(FIPS 46-3)。DES一直以來被美國以及其它國家的政府和銀行等廣泛使用。 ??然而,隨著計算機的進步,現(xiàn)在DES已經(jīng)能夠被暴力破解,強度大不如從前了。20世紀末,RSA公司舉辦過破

    2024年02月09日
    瀏覽(22)
  • JavaScript學(xué)習(xí) -- 對稱加密算法3DES

    JavaScript學(xué)習(xí) -- 對稱加密算法3DES

    在現(xiàn)代的互聯(lián)網(wǎng)時代,數(shù)據(jù)安全性備受關(guān)注。為了保護敏感數(shù)據(jù)的機密性,對稱加密算法是一種常用的方法。在JavaScript中,3DES(Triple Data Encryption Standard)是一種常用的對稱加密算法。本篇博客將為您展示如何在JavaScript中使用3DES算法進行加密和解密,并提供一個實際的例子

    2024年02月14日
    瀏覽(37)
  • Sweet32漏洞,升級openssl或者禁用3DES和DES弱加密算法

    由于等保的原因,被服務(wù)商掃描出漏洞。 warnings: | 64-bit block cipher 3DES vulnerable to SWEET32 attack 如何不喜歡使用nmap,也可以使用如下工具testssl.sh,但是輸出的內(nèi)容太多了,本次我只截取部分 解決辦法有兩個,一個是升級OpenSSL 1.0.2k-fips 26 Jan 2017 以上,另外一個是更新nginx配置,禁

    2024年02月11日
    瀏覽(28)
  • 通俗易懂,十分鐘讀懂DES,詳解DES加密算法原理,DES攻擊手段以及3DES原理。Python DES實現(xiàn)源碼

    通俗易懂,十分鐘讀懂DES,詳解DES加密算法原理,DES攻擊手段以及3DES原理。Python DES實現(xiàn)源碼

    DES(Data Encryption Standard)是一種 對稱加密 算法。它是在20世紀70年代初期由IBM研發(fā)的。它的設(shè)計目標(biāo)是提供高度的數(shù)據(jù)安全性和性能,并且能夠在各種硬件和軟件平臺上實現(xiàn)。 DES使用56位的密鑰和64位的明文塊進行加密。DES算法的分組大小是64位,因此,如果需要加密的明文長

    2024年02月03日
    瀏覽(28)
  • 密碼學(xué)之DES,3DES與Python實現(xiàn)AES

    最近項目中需要用到DES,3DES解密算法,所以了解一下。正好CSDN上有關(guān)于DES,3DES的資料。邊看邊寫一下總結(jié)。 密碼學(xué)之DES,3DES詳解與Python實現(xiàn) DES(Data Encryption Standard-數(shù)據(jù)加密標(biāo)準(zhǔn))屬于對稱加密,即使用相同的密鑰來完成加密和解密。分組長度為8個字節(jié)64bit(密鑰每個字節(jié)的最

    2024年02月08日
    瀏覽(21)
  • AES與DES加密解密算法

    AES與DES加密解密算法

    AES(Advanced Encryption Standard,高級加密標(biāo)準(zhǔn))的出現(xiàn),是因為以前使用的DES算法密鑰長度較短,已經(jīng)不適應(yīng)當(dāng)今數(shù)據(jù)加密安 全性的要求,因此2000年10月2日,美國政府宣布將比利時密碼學(xué)家Joan Daemen和Vincent Rijmen提出的密碼算法RIJNDAEL作為高級加密標(biāo)準(zhǔn)。2001年11月26日,美國政府

    2024年04月28日
    瀏覽(41)
  • 加密算法 AES和RSA

    加密算法 AES和RSA

    通過互聯(lián)網(wǎng)發(fā)送數(shù)據(jù),數(shù)據(jù)可能會被第三者惡意竊聽,造成損失。因此需要給重要的數(shù)據(jù)進行加密,加密后的數(shù)據(jù)被稱為“密文”。接收方通過解除加密或得原本的數(shù)據(jù),把密文恢復(fù)為原本數(shù)據(jù)的操作叫做“解密”。像這樣就減少了數(shù)據(jù)被惡意竊聽的風(fēng)險。 那么加密是怎么操

    2024年02月06日
    瀏覽(29)
  • 常見加密解密(DES、RSA)以及摘要算法MD5的介紹

    常見加密解密(DES、RSA)以及摘要算法MD5的介紹

    1.1-理解MD5 MD5公開的算法,任何語言實現(xiàn)后其實都是一樣的、通用的 不可逆加密:原文——加密——密文,密文無法解密出原文 1.2-MD5封裝 1.3-MD5總結(jié) 相同原文加密的結(jié)果是一樣的 不同長度的內(nèi)容加密后都是32位,可以自行改變長度 原文件改動差別很小,結(jié)果差別很大 不管文

    2024年02月14日
    瀏覽(23)
  • C# 實現(xiàn)對稱加密算法(AES)與非對稱加密算法(RSA),包含前端加密對應(yīng)算法實現(xiàn)

    C# 實現(xiàn)對稱加密算法(AES)與非對稱加密算法(RSA),包含前端加密對應(yīng)算法實現(xiàn)

    一種既簡單速度又快的加密方式,加密與解密使用的都是同一個密鑰,別名又叫做:單密鑰加密;對稱加密有很多公開算法,并且因為它效率很高,所以適用于加密大量數(shù)據(jù)的場合;但其密鑰的傳輸過程是不安全的,并且容易被破解,密鑰管理起來也相對麻煩。 需要兩個密鑰

    2024年02月09日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包