zoukankan      html  css  js  c++  java
  • php加密笔记

    1.加密解决那些问题

    防止通信内容被窃听

    防止通讯内容被篡改

    2. des(data encryption standard:数据加密标准)

    des是一种将64bit的明文加密成64bit的密文的对称算法.

    现在des已经可以被暴力破解.

    3.aes :目前没有被破解,推荐使用的

    4.aes 加密步骤

    5.des 加密操作

    //openssl_encrypt($data, $method, $key, $options = 0, $iv = "", &$tag = NULL, $aad = "", $tag_length = 16)
    //加密
    $data = "wo shi a student";
    $method = 'DES-CBC';
    $key = uniqid();
    $options = OPENSSL_RAW_DATA;
    $iv = '12345678';
    $content = openssl_encrypt($data, $method, $key, $options, $iv);
    var_dump($content);
    
    //解密
    $content = openssl_decrypt($content, $method, $key, $options, $iv);
    dd($content);
    

    6.aes 加密操作

    //加密
    $data = "wo shi a student";
    //$method = 'DES-CBC';  //des加密方法
    $method = 'AES-128-CBC'; //aes加密方法
    $key = uniqid();
    $options = OPENSSL_RAW_DATA;
    $iv = '1234567812345678'; 
    $content = openssl_encrypt($data, $method, $key, $options, $iv);
    var_dump($content);
    
    //解密
    $content = openssl_decrypt($content, $method, $key, $options, $iv);
    dd($content);
    

    //改变key的写法,获得动态的iv向量
    //加密
    $data = "wo shi a student";
    //$method = 'DES-CBC';  //des加密方法
    $method = 'AES-128-CBC'; //aes加密方法
    $id = uniqid();
    $key = md5($id);
    $options = OPENSSL_RAW_DATA;
    $iv = substr($key, 0, 16);
    //var_dump($id);
    //var_dump($key);
    $content = openssl_encrypt($data, $method, $key, $options, $iv);
    var_dump($content);
    
    //解密
    $content = openssl_decrypt($content, $method, $key, $options, $iv);
    dd($content);

    7. rsa 加密

    8.rsa 非对称加密操作

    //公钥私钥内容,自己生成  在http://web.chacuo.net/netrsakeypair
    $public = '-----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuXLbkP3vKy0qSA+n4Bhs
    UxP8lw4sAYF15ZhkInRnA50BzdUn8oukl+3/bejKhoHVW32/8r7eTMhs8conEFUU
    RxmjG/LkKeRf6qNfYnjTnCL7Ow8ZEamA7ka/eN3Sboiy+jUAYmAB1hEBBrGkinHe
    f48dpeCh3qPJENQN3ANcmoLgOlVQkh5aigX4I9UCRnu/3Uu8cNLjrEWFkcFEeLGz
    0WcCl+FZDFktQ7FhKNLxsj3RqiZKB6O92Q3BuBFSRB41nzkbAC+5gjpPyH+xbmeh
    bnDHn3bhrUbnXg5mqowu1jDLHfLFpCp9qQwvkQZozfnZJNFVdl6mdemM0q1Z13S3
    TQIDAQAB
    -----END PUBLIC KEY-----';
    $private = '-----BEGIN PRIVATE KEY-----
    MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC5ctuQ/e8rLSpI
    D6fgGGxTE/yXDiwBgXXlmGQidGcDnQHN1Sfyi6SX7f9t6MqGgdVbfb/yvt5MyGzx
    yicQVRRHGaMb8uQp5F/qo19ieNOcIvs7DxkRqYDuRr943dJuiLL6NQBiYAHWEQEG
    saSKcd5/jx2l4KHeo8kQ1A3cA1yaguA6VVCSHlqKBfgj1QJGe7/dS7xw0uOsRYWR
    wUR4sbPRZwKX4VkMWS1DsWEo0vGyPdGqJkoHo73ZDcG4EVJEHjWfORsAL7mCOk/I
    f7FuZ6FucMefduGtRudeDmaqjC7WMMsd8sWkKn2pDC+RBmjN+dkk0VV2XqZ16YzS
    rVnXdLdNAgMBAAECggEBAIQLTFuI8+sCVcDJpPbjbP4alRfZd2v7Cj9YqrP9vfvM
    p6QvyinhVGj5hY502v+7InfqqenmDdMOQsRG9FmkurOFhaY45E0P11vyx9ANyF68
    abY7odX5o1wF8//TsioSG54cbxGc2rHZmalyg34wZgTdmnap45frdxcMZnHp0t4Q
    a1XsRBBPQthUbfmTSvbdhXbGQ3ib1Xj8gPdWVnjwXaFf52jfJ5qaf4TA0uKth9th
    pxDMERM5ymZ4s5mamtotSKN4P8AgiRiABBeEsbPbT2Eg0P1j9X2H2IHG1UtyU1sS
    aVNm1ZroF+PkOlCi94qujaXN24XWnrfO2F+C2eTz9uECgYEA5wyRyjWiXR9WTE3T
    QwNQZpWpOhGQKBy70CJDWBZNPFjW1or+C/fWhiG6y+i+d9ywi7s5KqDtnJMOciQL
    pft3fNjmRGx29RBE4DxWuH4QgGv9ALC4Dxd8mZ8t8cjE249ytDKZeCurBlw403f+
    ONDc1P50YR2hZ7FsHwbMAwpCl9cCgYEAzXmmEKDBlE6DkqeyorkjYZhTJaR56SJV
    S6TR5MBzhzefQ+vZEpFF5mE0SrV6i8eLELozBr1rOc41ltcMoHOd+PqiK6FekgMM
    Do6dDNEyM4GNLT7yJ/CFleOSKkJsLRBglV+QYHb5db39okrQ7mOD2DGfho/Z4RMm
    qS+qE3pj9XsCgYEAxQHRufKbm/2hbvSZI7XKs33/SrU5DwrZFfJxK8XwW3mAznS7
    g+byc3KFPWMaLUfu/WZJq1CG6o/1rFuR1xihXMHxLfyyPel+YRjx9OQBHA94LkOA
    3dVv9+ljmptPR8t7yayvcWkCriyqg534Fef5tF+3SiuiubDt+VKpWBpCiAcCgYBL
    Ft+3R+g2WJMAr0Q670mcytvn77mVlzRwlmUWIbaWfZ84ZSJJBMn0rSU9ACEun9eU
    X1dyaRqcX116KFC2+kmKyZ0mMKys02w+jaObIYAlDn0XQd+g9Ob8pdOumeOKfGev
    buMGPbRgcPQVsR21YKy3/zp7JGrNNAB257JRt/J7rQKBgQCB3TiQbyY/2YuhzF9W
    drTHcz16s8gabv5KGOwyMw5EbqTN7T/6HJKLqRg/hHNaneexZitIFmJIPEwejWyj
    +TtvrnxzO7zLDjsS6yEhTJDCKR/ylmx3jCvdI8k7tB2lBKy2CM5jkeTPDNMDG9Dq
    crL/RLzgZSKIRpdWXb9KShWsGg==
    -----END PRIVATE KEY-----';
    
    //公钥(私钥)加密
    $content = 'this is rsa   test ';
    $encrypted='';
    $res = openssl_public_encrypt($content, $encrypted, $public);
    
    //私钥(公钥)解密
    $decrypted='';
    $dec = openssl_private_decrypt($encrypted, $decrypted, $private);
    //$dec =openssl_public_decrypt( $encrypted,$decrypted,$public); //如果使用公钥加密,再使用公钥解密的话,会返回false,失败,这就是rsa非对称加密算法
    
    var_dump($dec);
    var_dump($decrypted);
    die;

    解密后结果:

    9.中间人攻击

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    squid开多端口代理的心得
    用ssh跑pppd(最简单的linuxvpn)
    Asterisk1.2编译与安装
    E1 CE1 PRI BRI T1 的区别
    asterisk卡常见问题(收集整理)
    CCProxy+Eborder开透明代理详细设置(附图文)
    iptables+NAT+squid 透明代理上网实现方案
    asterisk积累命令
    MySQL Cluster的常见问题
    如何配置Silverlight4开发环境
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452657.html
Copyright © 2011-2022 走看看