精华内容
下载资源
问答
  • 本文详细介绍了PHP一个简单的对称加密函数实现数据的加密解密,详细的介绍了对称加密和非对称加密,有需要的可以了解一下。
  • 主要介绍了SQLSERVER加密解密函数使用方法,使用了非对称密钥、证书加密对称密钥、通行短语(PassPhrase)加密,大家参考使用吧
  • 尝试使用一些默认参数使加密更容易。 目前,选择的设置是: 使用 256 位密钥的 AES-CBC 加密 使用 PBKDF2 进行密钥推导(HMAC-SHA1 具有 10k 次迭代) SecureRandom for IV / Salt(每个 128 位) SHA-256 哈希 ...
  • HEX() 和 UNHEX() 函数 HEX():将一个字符串或数字转换为十六进制格式的字符串 UNHEX():将十六进制格式的字符串转化为原来的格式 加密AES_ENCRYPT(‘content’,‘secret’) INSERT INTO user(`password`) VALUES ...

    HEX() 和 UNHEX() 函数

    HEX():将一个字符串或数字转换为十六进制格式的字符串
    UNHEX():将十六进制格式的字符串转化为原来的格式

    加密AES_ENCRYPT(‘content’,‘secret’)

      INSERT INTO user(`password`) VALUES (HEX(AES_ENCRYPT('66', 'key')));
    

    解密 AES_DECRYPT(‘content’,‘secret’)

     SELECT AES_DECRYPT(UNHEX(`password`), 'key') FROM user;
    
    展开全文
  • 前言 刚回答了SegmentFault上一个兄弟提的问题《非对称解密出错》。这个属于Node.js在安全上的应用,遇到同样问题的人应该不少,基于回答的问题,...加密函数: crypto.publicEncrypt(key, buffer) 解密函数: cryp
  • Java代码实现非对称加密RSA算法示例

    千次阅读 2021-01-25 15:16:44
    对称加密:有两把密钥;使用公钥加密,必须使用私钥解密;或者使用私钥加密,必须使用公钥解密 加解密核心类:Cipher 下面代码是使用RSA算法加解密的一个示例,实现过程包括:生成密钥对,把公钥和私钥保存到文件...

    非对称加密:有两把密钥;使用公钥加密,必须使用私钥解密;或者使用私钥加密,必须使用公钥解密

    加解密核心类:Cipher

    下面代码是使用RSA算法加解密的一个示例,实现过程包括:生成密钥对,把公钥和私钥保存到文件中,读取公钥和私钥,对明文进行加密和解密。代码中都有详细的注释,如果代码中有哪些地方没看明白的,可以直接评论

    import java.io.File;
    import java.io.IOException;
    import java.nio.charset.Charset;
    import java.security.Key;
    import java.security.KeyFactory;
    import java.security.KeyPair;
    import java.security.KeyPairGenerator;
    import java.security.NoSuchAlgorithmException;
    import java.security.PrivateKey;
    import java.security.PublicKey;
    import java.security.spec.PKCS8EncodedKeySpec;
    import java.security.spec.X509EncodedKeySpec;
    import javax.crypto.Cipher;
    import org.apache.commons.codec.binary.Base64;
    import org.apache.commons.io.FileUtils;
    
    public class AsymmetricEncryption {
    
    	public static void main(String[] args) throws Exception{
    		String input="巅峰小苏";//需要加密的数据
    		String algorithm="RSA";//加密算法
    		//生成密钥对并保存在本地文件中
    		generateKeyToFile(algorithm,"a.pub","a.pri");
    		//读取私钥
    		PrivateKey privateKey = getPrivateKey("a.pri", algorithm);
    		//读取公钥
    		PublicKey publicKey = getPublicKey("a.pub", algorithm);
    		//加密
    		String en=encryptRSA(algorithm, privateKey, input);
    		System.out.println("加密:"+en);
    		//解密
    		String de=decryptRSA(algorithm, publicKey, en);
    		System.out.println("解密:"+de);
    	}
    	
    	/**
    	 * 私钥加密
    	 * @param algorithm 算法
    	 * @param privateKey 私钥
    	 * @param input  原文
    	 * @return
    	 * @throws Exception
    	 */
    	public static String encryptRSA(String algorithm,Key privateKey,String input)throws Exception{
    		//创建加密对象
    		Cipher cipher=Cipher.getInstance(algorithm);
    		//对加密进行初始化,第一个参数是:加密的模式
    		//第二个参数是:你想使用公钥加密还是私钥加密,这里使用的是私钥加密
    		cipher.init(Cipher.ENCRYPT_MODE, privateKey);
    		byte[] bytes=cipher.doFinal(input.getBytes());
    		return Base64.encodeBase64String(bytes);
    	}
    	/**
    	 * 公钥解密
    	 * @param algorithm 算法
    	 * @param publickey 公钥
    	 * @param encrypted 密文
    	 * @return
    	 * @throws Exception
    	 */
    	public static String decryptRSA(String algorithm,Key publickey,String encrypted)throws Exception{
    		Cipher cipher=Cipher.getInstance(algorithm);
    		//注意:如果使用公钥加密就必须使用私钥解密,使用私钥加密就必须使用公钥解密,否则会出现异常
    		cipher.init(Cipher.DECRYPT_MODE, publickey);
    		//把base64密文转回字节数组
    		byte[] decode=Base64.decodeBase64(encrypted);
    		byte[] bytes1=cipher.doFinal(decode);
    		//这里要用new String()转字符串,不能用.toString()方法,否则返回的是哈希值
    		return new String(bytes1);
    	}
    	/**
    	 * 把公钥和私钥保存到根目录
    	 * @param algorithm 算法
    	 * @param pubPath	公钥路径
    	 * @param priPath	私钥路径
    	 * @throws NoSuchAlgorithmException
    	 * @throws IOException
    	 */
    	private static void generateKeyToFile(String algorithm,String pubPath,String priPath) throws NoSuchAlgorithmException, IOException {
    		// 密钥对生成器对象
    		KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(algorithm);
    		// 初始化密钥长度
    		keyPairGenerator.initialize(1024);
    		// 生成密钥对
    		KeyPair keyPair = keyPairGenerator.generateKeyPair();
    		// 生成私钥
    		PrivateKey privateKey = keyPair.getPrivate();
    		// 获取私钥的字节数组
    		byte[] privateKeyEncoded = privateKey.getEncoded();
    		// 使用base64进行编码
    		String privateEncodeString = Base64.encodeBase64String(privateKeyEncoded);
    		System.out.println("私钥:" + privateEncodeString);
    		// 生成公钥
    		PublicKey publicKey = keyPair.getPublic();
    		// 获取公钥的字节数组
    		byte[] publicKeyEncoded = publicKey.getEncoded();
    		// 使用base64进行编码
    		String publicEncodeString = Base64.encodeBase64String(publicKeyEncoded);
    		System.out.println("公钥:" + publicEncodeString);
    		//把公钥和私钥保存到根目录
    		FileUtils.writeStringToFile(new File(pubPath), publicEncodeString,Charset.forName("UTF-8"));
    		FileUtils.writeStringToFile(new File(priPath), privateEncodeString,Charset.forName("UTF-8"));
    	}
    	/**
    	 * 读取私钥
    	 * @param priPath 私钥的路径
    	 * @param algorithm 算法
    	 * @return
    	 * @throws Exception 返回私钥的key对象
    	 */
    	private static PrivateKey getPrivateKey(String priPath,String algorithm) throws Exception{
    		String privateKeyString=FileUtils.readFileToString(new File(priPath),Charset.defaultCharset());
    		//创建key的工厂
    		KeyFactory keyFactory=KeyFactory.getInstance(algorithm);
    		//创建私钥key的规则
    		PKCS8EncodedKeySpec keySpec=new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKeyString));
    		//返回私钥对象
    		return keyFactory.generatePrivate(keySpec);
    	}
    	
    	/**
    	 * 读取公钥
    	 * @param priPath 公钥的路径
    	 * @param algorithm 算法
    	 * @return
    	 * @throws Exception 返回公钥的key对象
    	 */
    	private static PublicKey getPublicKey(String publicPath,String algorithm) throws Exception{
    		String publicKeyString=FileUtils.readFileToString(new File(publicPath),Charset.defaultCharset());
    		//创建key的工厂
    		KeyFactory keyFactory=KeyFactory.getInstance(algorithm);
    		//创建公钥key的规则
    		X509EncodedKeySpec keySpec=new X509EncodedKeySpec(Base64.decodeBase64(publicKeyString));
    		//返回公钥对象
    		return keyFactory.generatePublic(keySpec);
    		
    	}
    }
    

    欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感谢。如果觉得本文章有帮助到的,点个赞呗,让更多的阅读者看到

    展开全文
  • 对称加密算法:AES,可逆(DES的替代者)

    对称加密算法:AES,可逆(DES的替代者)

    话不多说。直接上代码

    <?php
     
    namespace app\common;
     
    class Aes
    {
        /**
         * var string $method 加解密方法,可通过openssl_get_cipher_methods()获得
         */
        protected $method;
     
        /**
         * var string $secret_key 加解密的密钥
         */
        protected $secret_key;
     
        /**
         * var string $iv 加解密的向量,有些方法需要设置比如CBC
         */
        protected $iv;
     
        /**
         * var string $options (不知道怎么解释,目前设置为0没什么问题)
         */
        protected $options;
     
        /**
         * 构造函数
         *
         * @param string $key 密钥
         * @param string $method 加密方式
         * @param string $iv iv向量
         * @param mixed $options 还不是很清楚
         * 使用意见。后台请使用 AES-128-ECB API传输加密建议使用 AES-128-CBC 并携带IV向量。必备
         *
         */
        public function __construct($key, $method = 'AES-128-ECB', $iv = '', $options = 0)
        {
            // key是必须要设置的
            $this->secret_key = isset($key) ? $key : '132465';
     
            $this->method = $method;
     
            $this->iv = $iv;
     
            $this->options = $options;
        }
     
        /**
         * 加密方法,对数据进行加密,返回加密后的数据
         *
         * @param string $data 要加密的数据
         *
         * @return string
         *
         */
        public function encrypt($data)
        {
            $aesValue = openssl_encrypt($data, $this->method, $this->secret_key, $this->options, $this->iv);
            return urlsafe_b64encode($aesValue);
        }
     
        /**
         * 解密方法,对数据进行解密,返回解密后的数据
         *
         * @param string $data 要解密的数据
         *
         * @return string
         *
         */
        public function decrypt($data)
        {
            $data = urlsafe_b64decode($data);
            return openssl_decrypt($data, $this->method, $this->secret_key, $this->options, $this->iv);
        }
    }
    

    urlsafe_b64decode 和 urlsafe_b64encode实现如下

    function urlsafe_b64encode ($string) {
        $data = base64_encode ($string);
        $data = str_replace ( array('+', '/', '=') , array('-', '_', '') , $data );
        return $data;
     }
    // URL安全的字符串解码:
    function urlsafe_b64decode ($string) {
        $data = str_replace ( array('-', '_') , array('+', '/') , $string );
        $mod4 = strlen ($data) % 4;
        if ($mod4) {
            $data .= substr('====', $mod4);
        }
        return base64_decode($data);
     }
    

    使用范例(Thinkphp6)

    	$aes = new OpenSSLAES($this->key);
        //加密
        $aesValue = $aes->encrypt('123465456465');
    	//解密
        $value = $aes->decrypt($aesValue);
    
    
    展开全文
  • PostgreSQL , 对称加密 , 非对称加密 , Symmetric , ASymmetric , public , private , pgcrypto , 区块链 背景 对称加密方法,指加密和解密使用同一把密钥的方法。优势是加密速度快,缺陷是密钥只有一把,...

    点击有惊喜


    标签

    PostgreSQL , 对称加密 , 非对称加密 , Symmetric , ASymmetric , public , private , pgcrypto , 区块链


    背景

    对称加密方法,指加密和解密使用同一把密钥的方法。优势是加密速度快,缺陷是密钥只有一把,安全性较低。

    非对称加密方法,指加密和解密用到一对钥匙,一把为私钥,一把为公钥。通常的用法是公钥用于加密,私钥用于解密。优势是更加安全,你自己只要保护好私钥,就可以保证别人给你发的数据无法被篡改、窃听。缺陷是加解密效率比对称加密更差一些。

    混合加密,指发送大量加密数据前,首先使用非对称加密,将对称加密的密钥加密发送给对端,然后双方使用对称加密通讯。时长更改对称加密的密钥来保证安全。

    PostgreSQL pgcrypto插件,同时支持对称和非对称加密,详细用法参考:

    https://www.postgresql.org/docs/devel/static/pgcrypto.html

    用法介绍

    一、对称加密

    加密和解密使用同一把钥匙。

    1、加密

    postgres=# \x  
    Expanded display is on.  
    postgres=# select pgp_sym_encrypt('需要加密的文字,你好呀,我是digoal.', 'this is password', 'cipher-algo=aes256, compress-algo=2');  
    -[ RECORD 1 ]---+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  
    pgp_sym_encrypt | \xc30d040903022bdfd5bc64a755e072d27001818495e940d555f02711fed0cce27265d8955af6a669c6996dfd805dbfdf45c0e81ceb7aff8ced8dad51a812127043674720e054e4bf8738048b5e57df3b87b1f786270db0dddb14a9bc89701a53fc6d9a597861a818f7bb38f085ca7c413af25c68344f4676f62aa1a72c76183369  
    

    2、解密

    postgres=# select pgp_sym_decrypt('\xc30d040903022bdfd5bc64a755e072d27001818495e940d555f02711fed0cce27265d8955af6a669c6996dfd805dbfdf45c0e81ceb7aff8ced8dad51a812127043674720e054e4bf8738048b5e57df3b87b1f786270db0dddb14a9bc89701a53fc6d9a597861a818f7bb38f085ca7c413af25c68344f4676f62aa1a72c76183369', 'this is password');  
    -[ RECORD 1 ]---+------------------------------------  
    pgp_sym_decrypt | 需要加密的文字,你好呀,我是digoal.  
    

    二、非对称加密

    由于非对称加解密使用的是一对公钥和密钥,首先需要生成一对公钥和密钥。

    使用gpg --gen-key 可以生成。

    以Linux系统为例。

    安装、启动rng-tools

    为了快速生成随机数,需要安装rng-tools。(产生公钥与密钥时,需要一些随机数)

    yum install -y rng-tools  
    

    启动rngd,生成随机数

    rngd  
      
    read error  
      
    hwrng: no available rng  
    Unable to open file: /dev/tpm0  
    
    # ps -ewf|grep rngd  
    root     14762     1  0 14:52 ?        00:00:00 rngd  
    root     14767 12394  0 14:52 pts/4    00:00:00 grep --color=auto rngd  
    

    生成一对公钥和密钥

    1、

    # gpg --gen-key  
    gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.  
    This is free software: you are free to change and redistribute it.  
    There is NO WARRANTY, to the extent permitted by law.  
    

    2、输入KEY类别,选择2

    Please select what kind of key you want:  
       (1) RSA and RSA (default)  
       (2) DSA and Elgamal  
       (3) DSA (sign only)  
       (4) RSA (sign only)  
    Your selection? 2  
    

    3、选择KEY的长度

    DSA keys may be between 1024 and 3072 bits long.  
    What keysize do you want? (2048)   
    Requested keysize is 2048 bits  
    

    4、输入KEY的有效时间,这里输入的是10年

    Please specify how long the key should be valid.  
             0 = key does not expire  
          <n>  = key expires in n days  
          <n>w = key expires in n weeks  
          <n>m = key expires in n months  
          <n>y = key expires in n years  
    Key is valid for? (0) 10y  
    Key expires at Thu 24 Feb 2028 02:52:09 PM CST  
    

    5、是否正确

    Is this correct? (y/N) y  
    

    6、输入KEY的标识

    GnuPG needs to construct a user ID to identify your key.  
      
    Real name: digoal  
    Email address: digoal@126.com  
    Comment: test  
    You selected this USER-ID:  
        "digoal (test) <digoal@126.com>"  
    

    7、确认

    Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O  
    

    8、输入私有密钥的保护密码

    You need a Passphrase to protect your secret key.  
    假设这里输入了 hello123  
      
    lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk  
    x Enter passphrase                                    x  
    x                                                     x  
    x                                                     x  
    x Passphrase ********________________________________ x  
    x                                                     x  
    x       <OK>                             <Cancel>     x  
    mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj  
      
    lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk  
    x Please re-enter this passphrase                     x  
    x                                                     x  
    x Passphrase ********________________________________ x  
    x                                                     x  
    x       <OK>                             <Cancel>     x  
    mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj  
    

    生成好后,也能设置密码

    # gpg --passwd "digoal (test) <digoal@126.com>"  
      
    lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk  
    x Please enter the passphrase to unlock the secret key for the OpenPGP certificate:  x  
    x "digoal (test) <digoal@126.com>"                                                   x  
    x 2048-bit DSA key, ID 42CF57DB,                                                     x  
    x created 2018-02-26.                                                                x  
    x                                                                                    x  
    x                                                                                    x  
    x Passphrase *********______________________________________________________________ x  
    x                                                                                    x  
    x            <OK>                                                  <Cancel>          x  
    mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj  
      
    Enter the new passphrase for this secret key.  
      
    lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk  
    x Enter passphrase                                    x  
    x                                                     x  
    x                                                     x  
    x Passphrase ********________________________________ x  
    x                                                     x  
    x       <OK>                             <Cancel>     x  
    mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj  
      
      
    lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk  
    x Please re-enter this passphrase                     x  
    x                                                     x  
    x Passphrase ********________________________________ x  
    x                                                     x  
    x       <OK>                             <Cancel>     x  
    mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj  
    

    9、生成密钥过程中,需要机器有一定的随机输入,所以我们前面启动了rngd

    We need to generate a lot of random bytes. It is a good idea to perform  
    some other action (type on the keyboard, move the mouse, utilize the  
    disks) during the prime generation; this gives the random number  
    generator a better chance to gain enough entropy.  
    gpg: WARNING: some OpenPGP programs can't handle a DSA key with this digest size  
    We need to generate a lot of random bytes. It is a good idea to perform  
    some other action (type on the keyboard, move the mouse, utilize the  
    disks) during the prime generation; this gives the random number  
    generator a better chance to gain enough entropy.  

    点击有惊喜


    展开全文
  • Nut.js是一个轻量级(也许没用)的库,用于对称加密一些东西以避免基于关键字的审查。 为此,您应该在前端解密消息,因此使用它可能对 SEO 有害。 Nut.js是一个小型 JavaScript 库,用于对称加密您的帖子以避免...
  • 对称加密算法以及使用方法

    千次阅读 2018-10-09 19:08:00
    加密的原因:保证数据安全 加密必备要素:1、明文/密文 2、秘钥 3、算法 ...加密算法解密算法一般互逆、也可能相同 ...对称加密:秘钥:加密解密使用同一个密钥、数据的机密性双向保证、加密效率高、适合加密...
  • RSA非对称加密算法详解

    万次阅读 多人点赞 2016-12-11 23:10:50
    1. 对称加密 2. 非对称加密 3. 不可逆加密对称加密算法 加密过程: 将明文分成N个组,然后对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。 优点: 算法公开、计算量小、加密
  • SM4(国产对称加密算法) ,支持ECB和CBC两种加密模式,支持base64和HEX两种加密格式输出。兼容java
  • 将php的openssl扩展中的非对称加密函数封装成一个Rsa类。 需要注意的是,在windows上,需要打开openssl的配置文件,请参照官方的openssl扩展安装文档。 在windows上安装openssl扩展 1、将php路径下的两个库文件...
  • 对称加密、非对称加密、公钥、私钥究竟是个啥?

    千次阅读 多人点赞 2020-06-07 23:29:20
    世界上有没有不能破解的密码或加密方式?还真有一种,叫做一次性密码本,这时唯一一种不能破解的加密方式,而其他的密码只要时间无限理论上都是可破解的,如果你也对加密这个领域感兴趣,可以简单了解下这些概念...
  • Https的加密过程 / 对称加密和非对称加密

    千次阅读 多人点赞 2018-12-24 11:21:00
    client请求服务端(指定SSL版本和加密组件) server返回CA证书+公钥 client用机构公钥认证server返回的CA证书上的签名是否正确 client生成一个密钥R,用公钥对密钥R加密发送给server server用服务器的私钥解密...
  • 平时在工作中一直有使用到对称加密与非对称加密算法,以前一直是拿来就用,没有仔细想过里面的实现原理。今天突然有兴趣和时间研究下。 1、什么是对称加密算法? 加密和解密都使用相同密钥的算法。 公式:C=E(P,e...
  • 哈希函数又称为单向散列函数,任意长度经过哈希函数变成一个固定的值,且具有不可逆性。输入相同,输出一定相同,不同的输入数据想要获得相同的输出很难,概率很低。 可用作判断数据的完整性...对称机密算法:使用...
  • 对称加密与非对称加密前言对称加密对称加密神奇的问题 前言 这是我学习https遇到的问题。我刷面经的时候在好多地方都看到了面试官问一些https的知识,搞得我很难受,根本就不懂啥是https,只知道它比http安全,但...
  • 本文实例讲述了python实现的AES双向对称加密解密与用法。分享给大家供大家参考,具体如下: 高级加密标准(Advanced Encryption Standard,AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密...
  • 1.对称加密 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读...
  • 对称加密&非对称加密&混合加密

    千次阅读 2018-11-09 10:23:13
    对称加密&amp;amp;amp;amp;amp;amp;amp;非对称加密&amp;amp;amp;amp;amp;amp;amp;混合加密写于前iOS中常在哪些场景应用到写一个系列本文概要对称加密(Symmetric Cryptography)非对称加密(ASymmetric ...
  • 对称加密,即明文加密及密文解密,用的同一组密钥,相对于非对称加密对称加密速度快,加密效率高,对称加密通常在消息发送方需要加密大量数据时使用。 接下来为大家介绍几种常见的加密方式。 1.DES加密方式 DES...
  • 文章目录HTTPS VS HTTPHTTPS=HTTP+加密+证书+完整性保护加密对称加密对称加密混合加密证书完整性保护HTTPS并不能取代HTTPSSL是把双刃剑HTTPS的遗憾之处 HTTPS VS HTTP 计算机网络 (二) 应用层 :HTTP协议详解 在...
  • 加密分为两大类:对称加密、非对称加密,两类加密算法各有优点,在不同的场景使用不同的算法。 对称加密 加密方将原始数据和加密密钥一起经过特殊加密算法处理后,生成密文结果,解密方使用相同的秘钥及相同加密...
  • 最近在工作中涉及到椭圆曲线...网络---Https和Http区别和对称加密和非对称加密)其中大部分图片都是从该文中截图后修改 1.密钥与加密算法之间的关系 这个东西是总被一些人解读的有问题,导致让人区分不开密钥和...
  • 对称加密、单向加密和非对称加密

    千次阅读 2018-06-02 23:40:41
    下文主要从加密算法的特征、常用加密算法和加密工具等方面,梳理和比较对称加密、单向加密和公钥加密的概念及其之间的联系。 1. 对称加密 采用单钥密码的加密方法,同一个密钥可以同时用来加密和解密,这种加密...
  • 一、对称加密 在密码学上,加密和解密使用的是同一个秘钥的称为对称加密对称加密的秘钥一般比较短,小于256kbit, 当然,秘钥越大,安全性就更强,但是加密和解密的过程耗时也就更长,其中权衡,取决于实际应用...
  • 1.对称加密主要利用相同的密钥来实现,而非对称加密利用公钥和私钥来加密,比较而言对称加密速度快,但是安全性要低 为什么使用base64_encode(),主要是用于传参,直接加密完成后不是我们能理解的字符串,也就是大家...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,754
精华内容 13,101
关键字:

对称加密函数