您的位置 首页 php

php中加密解密DES的正确使用姿势

前言 :在平时的开发中,我们经常会对关键字符进行加密,可能为了安全 也可能为了规范,今天就将就DES加密正确使用

任务流程图

7ed4db60281eb7ca924cb5b3377e0a1.png

片段1

说干就干,我开始编写des加密类 代码如下

class DES{    var $key;    var $iv; //偏移量     function DES( $key, $iv=0 ) {        //key长度8例如:1234abcd        $this->key = $key;        if( $iv == 0 ) {            $this->iv = $key;        } else {            $this->iv = $iv; //mcrypt_create_iv ( mcrypt_get_block_size (MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM );        }    }     function encrypt($str) {        //加密,返回大写十六进制字符串        $size = mcrypt_get_block_size ( MCRYPT_DES, MCRYPT_MODE_CBC );        $str = $this->pkcs5Pad ( $str, $size );        return strtoupper( bin2hex( mcrypt_cbc(MCRYPT_DES, $this->key, $str, MCRYPT_ENCRYPT, $this->iv ) ) );    }     function decrypt($str) {        //解密        $strBin = $this->hex2bin( strtolower( $str ) );        $str = mcrypt_cbc( MCRYPT_DES, $this->key, $strBin, MCRYPT_DECRYPT, $this->iv );        $str = $this->pkcs5Unpad( $str );        return $str;    }     function hex2bin($hexData) {        $binData = "";        for($i = 0; $i < strlen ( $hexData ); $i += 2) {            $binData .= chr ( hexdec ( substr ( $hexData, $i, 2 ) ) );        }        return $binData;    }     function pkcs5Pad($text, $blocksize) {        $pad = $blocksize - (strlen ( $text ) % $blocksize);        return $text . str_repeat ( chr ( $pad ), $pad );    }     function pkcs5Unpad($text) {        $pad = ord ( $text {strlen ( $text ) - 1} );        if ($pad > strlen ( $text ))            return false;        if (strspn ( $text, chr ( $pad ), strlen ( $text ) - $pad ) != $pad)            return false;        return substr ( $text, 0, - 1 * $pad );    }}

测试代码

<?phpheader("Content-type: text/html; charset=utf-8");error_reporting(0);require "DES5.php";// 秘钥$key = 'MOxinrui';$crypt = new DES5($key);$str = 'podsmia';echo "原字符是".$str.'<br>';$encrypt_str = $crypt->encrypt($str);echo "加密后的字符是".$encrypt_str.'<br>';$decrypt_str= $crypt->decrypt($encrypt_str);echo "解密后的字符是".$decrypt_str.'<br>';

效果

原字符是podsmia加密后的字符是9490E64136137FD8解密后的字符是podsmia

过了几天,我闲着没事,继续运行一下代码

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; DES5 has a deprecated constructor in D:\phpstudy_pro\WWW\des\DES5.php on line 2

原字符是podsmia

Fatal error: Uncaught Error: Call to undefined function mcrypt_get_block_size() in D:\phpstudy_pro\WWW\des\DES5.php:19 Stack trace: #0 D:\phpstudy_pro\WWW\des\1.php(10): DES5->encrypt('podsmia') #1 {main} thrown in D:\phpstudy_pro\WWW\des\DES5.php on line 19

给我报了 fatalerror 这不科学啊,我什么都没动啊。怎么回事呢。后面经过一番研究。发现是php版本的问题。我之前运行成功,那是因为我用的 是php5.5,但是这次报错我用的是php7.2.。那么我需要找替代方案。。接下来看我操作

片段2

<?phpclass DES7{    //要改的加密    public function desEncrypt($str,$key) {        $iv = $key;        $data = openssl_encrypt($str,"DES-CBC",$key,OPENSSL_RAW_DATA,$iv);        $data = strtolower(bin2hex($data));        return $data;    }     //要改的解密    public function desDecrypt($str,$key) {        $iv = $key;        return openssl_decrypt (hex2bin($str), 'DES-CBC', $key, OPENSSL_RAW_DATA,$iv);    }}

测试代码

<?phpheader("Content-type: text/html; charset=utf-8");//error_reporting(0);// 秘钥require "DES7.php";$key = 'MOxinrui';$crypt = new DES7($key);$str = '问哪个';echo "原字符是".$str.'<br>';$encrypt_str = $crypt->desEncrypt($str,$key);echo "加密后的字符是".$encrypt_str.'<br>';$decrypt_str= $crypt->desDecrypt($encrypt_str,$key);echo "解密后的字符是".$decrypt_str.'<br>';

效果

原字符是问哪个加密后的字符是074b8beee21eefca7ec3a60cb8edda18解密后的字符是问哪个

问题完美解决。大家以后遇到这种问题,直接照搬我的代码即可,方便省事。

更多PHP相关知识,请访问PHP教程!

以上就是php中加密解密DES的正确使用姿势的详细内容,更多请关注求知技术网其它相关文章!

文章来源:智云一二三科技

文章标题:php中加密解密DES的正确使用姿势

文章地址:https://www.zhihuclub.com/2169.shtml

关于作者: 智云科技

热门文章

评论已关闭

303条评论

  1. Excellent website. Lots of helpful info here.
    I’m sending it to some friends ans additionally
    sharing in delicious. And of course, thanks for your effort!

  2. Nice post. I learn something new and challenging on sites I stumbleupon every day.
    It’s always useful to read content from other
    authors and use something from their web sites.

  3. We will teach you how to earn $ 7000 per hour. Why?
    We will profit from your profit.

  4. Карты для интернет оплаты.

    Карты банков вне санкций.

  5. What’s up, this weekend is fastidious designed for me, since this point in time i am reading this fantastic informative paragraph here at
    my home.

  6. Can I simply just say what a comfort to uncover someone who really knows what they are discussing on the internet.
    You definitely understand how to bring a problem to light and
    make it important. More and more people must check this out and understand this side of the story.
    It’s surprising you are not more popular because you definitely have the gift.

  7. We will teach you how to earn $ 7000 per hour.
    Why? We will profit from your profit.

  8. We will teach you how to earn $ 7000 per hour. Why? We will profit from your
    profit.

  9. We will teach you how to earn $ 7000 per hour. Why? We will profit from your profit.

  10. It’s really very complex in this active life to listen news on Television,
    therefore I only use the web for that purpose,
    and take the most up-to-date news.

  11. We will teach you how to earn $ 7000 per hour.
    Why? We will profit from your profit.

  12. We will teach you how to earn $ 7000 per hour. Why? We will profit from your profit.

  13. We will teach you how to earn $ 7000 per hour.
    Why? We will profit from your profit.

  14. We will teach you how to earn $ 7000 per hour. Why? We will profit from your profit.

  15. Стратегия бинарных опционов 10 $ до 8000$ за час

  16. We will teach you how to earn $8000 per hour.
    Why? We will profit from your profit.

  17. Trade Forex Bitcoin binary option min deposit 10$-Trading futures contracts with leverage X5-X100.

  18. Trade Forex Bitcoin binary option min deposit 10$-Trading futures contracts with leverage X5-X100.

  19. Trade Forex Bitcoin binary option min deposit 10$-Trading futures contracts with
    leverage X5-X100.

  20. Trade Forex Bitcoin binary option min deposit 10$-Trading futures contracts with leverage
    X5-X100.

  21. Trade Forex Bitcoin binary option min deposit 10$-Trading futures contracts with leverage X5-X100.

  22. Make money trading opions.
    The minimum deposit is 10$.
    Learn how to trade correctly. How to earn from $10 to $15000 a day.

    The more you earn, the more profit we get.

  23. Trade Forex Bitcoin binary option min deposit 10$-Trading futures contracts with leverage X5-X100.

  24. We will teach you how to earn $8000 per hour. Why? We will profit from your profit.

  25. Link exchange is nothing else but it is simply placing the other person’s webpage link on your page
    at suitable place and other person will also do same in support of you.

  26. You’ve made some really good points there. I checked on the web
    for more information about the issue and found most people
    will go along with your views on this web site.

  27. Make money trading opions. The minimum deposit is
    10$.
    Lean how to trade correctly.
    How to earn fromr $50 to $10000 a day. The more you earn, the more profit we get.

  28. Internet earnings – attract new clients to binary options and get profit up to
    50% (from $100-$50,000 per month). Payouts every week. Read
    more here.

  29. We will teach you how to earn $ 7000 per hour.
    Why? We will profit from your profit.

  30. Guess the exchange rate, bitcoin and get money.
    Start with $10 and you can earn up to $1000 in a day, see how

  31. Guess the exchange rate, bitcoin and get money. Start with
    $10 and you can earn up to $1000 in a day, see how

  32. Как поднять бабла- авиатор игра наденьги

  33. Internet earnings – attract new clients to binary options
    and get profit up to 50% (from $100-$50,000 per month).

    Payouts every week. Read more here.

  34. TeamSpeak (known as TS) is a chat program using the internet as a pathway for delivering super crisp communications. TeamSpeak was originally targeted towards the gaming communities. This application was created for accelerating communication in online MMORPGs. However, the same possibilities with games became very enticing for business. This software created a revolution in the multiplayer gaming world around ten years ago. Before [url=https://sameteem.com/threads/automatic-free-private-teamspeak-channels.14586/]TeamSpeak Servers[/url] all gamers knew of was in game VOIP commands, which were often infested with hackers.
    If you partake in games or have a job in detailed development work with various users on differing PCs in various countries, you already know the significance of a reliable voice chat connection to ensure clear, timely communication. Whether you need extensible control over your guild’s chat, or a system with more reliability and stability than your current system, [url=https://sameteem.com/threads/automatic-free-private-teamspeak-channels.14586/]TeamSpeak Servers[/url] are a superb solution for MMORPG players, other FPS players, and everyone who wants voice over IP services for work or gaming needs.
    A [url=https://sameteem.com/threads/automatic-free-private-teamspeak-channels.14586/]Free TeamSpeak Server[/url] server allows you to tinker and adjust who you talk with, with full administrative functions that allow you to add or delete users at your discretion. Instantly, you get the ability to extend slots and manage all parts of the group’s online chat. With your own TeamSpeak [url=https://hostwithcrypto.com/]server[/url], you enjoy clear sound, admin controls, and a fully adjustable and extensible user permissions system.
    With TeamSpeak, you have complete control over how you and your fellow gamers connect online. All you need is a microphone and headset to start enjoying the benefits of a TeamSpeak server.
    You can rent a [url=https://hostwithcrypto.com/]Virtual Server[/url] from one of the providers at TeamSpeak.com or go through the headache of setting up the server software on your own. You can also connect to many [url=https://sameteem.com/threads/automatic-free-private-teamspeak-channels.14586/]Free TeamSpeak Servers with free channels[/url] or search additional servers on [url=https://teamspeak.server.vote/]Public TeamSpeak Server Lists[/url][url=http://teamspeakserverlist.com/]TS Server Lists[/url].

  35. Please let me know if you’re looking for a writer for your
    blog. You have some really great posts and I feel I would be a
    good asset. If you ever want to take some of the load off, I’d love
    to write some content for your blog in exchange for a link
    back to mine. Please send me an e-mail if interested. Thanks!

    Also visit my web-site ::

  36. Make money trading opions. The minimum deposit is 10$.
    Learn how to trade correctly. The more you earn, the more profit we get.

  37. Sports betting, football betting, cricket betting, euroleague football betting, aviator games, aviator
    games money – first deposit bonus up to 500 euros.

  38. Sports betting, football betting, cricket betting, euroleague football betting, aviator games, aviator games money – first deposit bonus up to 500 euros.

  39. Make money trading opions. The minimum deposit is 10$.
    Learn how to trade correctly. The more you earn, the more profit we get.

  40. बेट्स पर आपकी कमाई,खेल
    सट्टेबाजी क्रिकेट, क्रिकेट, क्रिकेट सट्टेबाजी, क्रिकेट मैचों पर सट्टा

  41. Make money trading opions.
    The minimum deposit is 50$.
    Learn how to trade correctly. How to earn from $50 to $5000 a day.
    The more you earn, the more profit we get.

  42. Make money trading opions. The minimum deposit is 10$.

    Learn how to trade correctly. The more you earn, the more profit we get.

  43. Internet earnings – attract new clients to binary options
    and get profit up to 50% (from $100-$50,000 per month).

    Payouts every week. Read more here.

  44. Make money trading opions. The minimum deposit is 10$.

    Learn how to trade correctly. The more you earn, the
    more profit we get.

  45. Make money trading opions. The minimum deposit is 10$.

    Learn how to trade correctly. The more you earn, the more profit we get.

  46. Hello, Neat post. There’s a problem along with your web site in internet explorer, might check this?
    IE nonetheless is the market chief and a big element of folks will miss your magnificent writing because of this problem.

  47. Make money trading opions. The minimum deposit is
    10$.
    Learn how to trade correctly.
    How to earn from $50 to $10000 a day. The more you earn, the
    more profit we get.

  48. Guess the exchange rate, bitcoin and get money.
    Start with $10 and you can earn up to $1000 in a day, see how

  49. Make money trading opions.
    The minimum deposit is 50$.
    Learn how to trade correctly. How to earn from $50 to $5000 a
    day. The more you earn, the more profit we get.

  50. Make money trading opions. The minimum deposit is 10$.

    Learn how to trade correctly. The more you earn, the more profit we get.

  51. Make money trading opions. The minimum deposit is 10$.

    Learn how to trade correctly.
    How to earn from $50 to $10000 a day. The more you earn, the more profit we get.

  52. Make money trading opions. The minimum deposit is 10$.

    Learn how to trade correctly. The more you earn, the more profit we get.

  53. Make money trading opions. The minimum deposit is 10$.
    Learn how to trade correctly. The more you earn, the more profit we get.

  54. Heya i’m for the first time here. I came across this board and I find It truly useful & it helped me out a lot. I hope to give something back and aid others like you aided me.

  55. I enjoy reading a post that can make people think. Also,
    thank you for allowing me to comment!

  56. I’m gone to tell my little brother, that he should also go to see this blog on regular basis to take updated
    from most up-to-date news.

  57. Great post. I was checking continuously this blog and I’m impressed!

    Very useful information specifically the remaining
    section 🙂 I maintain such information much. I was looking
    for this particular information for a long time.
    Thank you and good luck.

  58. My programmer is trying to persuade me to move to .net from PHP.
    I have always disliked the idea because of the costs. But he’s tryiong none the less.
    I’ve been using WordPress on a number of websites for about a year
    and am worried about switching to another platform.

    I have heard great things about blogengine.net. Is there a way I can import all my wordpress
    content into it? Any kind of help would be greatly appreciated!

  59. It’s remarkable to go to see this web site and reading the views of all colleagues on the topic of this piece of writing, while I
    am also eager of getting knowledge.

  60. It’s hard to find educated people about this topic, however, you
    seem like you know what you’re talking about! Thanks

  61. Thanks to my father who told me on the topic of this weblog, this
    blog is in fact remarkable.

  62. WOW just what I was looking for. Came here by searching for binary options
    betting

  63. If you are going for finest contents like myself, just go to see this
    website all the time for the reason that
    it presents quality contents, thanks

  64. Does your website have a contact page? I’m having trouble locating it
    but, I’d like to shoot you an e-mail. I’ve got some recommendations for your blog you might
    be interested in hearing. Either way, great blog
    and I look forward to seeing it grow over time.

  65. Does your blog have a contact page? I’m having trouble locating
    it but, I’d like to shoot you an email. I’ve got some ideas for your blog you might be interested in hearing.

    Either way, great blog and I look forward to seeing it grow over time.

  66. Hi, yes this piece of writing is in fact good and
    I have learned lot of things from it concerning blogging.

    thanks.

  67. I am genuinely delighted to read this webpage posts which includes tons of useful facts, thanks
    for providing these kinds of information.

  68. Hmm is anyone else encountering problems with the images
    on this blog loading? I’m trying to find out if its a problem on my end or if it’s the blog.
    Any suggestions would be greatly appreciated.

  69. Make money trading opions. The minimum deposit is 10$.

    Learn how to trade correctly.
    How to earn from $50 to $10000 a day. The more you earn, the more profit
    we get.

  70. Wow, that’s what I was seeking for, what a
    stuff! present here at this website, thanks admin of this
    web site.

    Also visit my web page:

  71. That is a good tip especially to those new to the blogosphere.
    Brief but very accurate information… Thank you for sharing this one.
    A must read article!

    Check out my site –

  72. Make money trading opions.
    The minimum deposit is 50$.
    Learn how to trade correctly. How to earn from $50 to $15000 a day.

    The more you earn, the more profit we get.
    I really wish I’m useful in some way here.

  73. Make money trading opions.
    The minimum deposit is 50$.
    Learn how to trade correctly. How to earn from $50 to $15000 a day.

    The more you earn, the more profit we get.
    I really wish I am useful at all

  74. Make money trading opions. The minimum deposit is 10$.
    Learn how to trade correctly.
    How to earn from $50 to $10000 a day. The more you earn, the more profit we get.

  75. I am really enjoying the theme/design of your weblog.
    Do you ever run into any browser compatibility problems?
    A handful of my blog audience have complained about my website not operating
    correctly in Explorer but looks great in Safari.

    Do you have any recommendations to help fix this issue?How to make
    money online?
    Copy successful trades of traders in and .
    From 100% to 1000% per month can reach your
    income.

  76. This page definitely has all of the info I needed about this subject and didn’t know
    who to ask.

  77. Make money trading opions.
    The minimum deposit is 50$.
    Learn how to trade correctly. How to earn from $50 to $15000 a day.

    The more you earn, the more profit we get.
    I really hope I am useful at all

  78. Sports betting, football betting, cricket betting, euroleague football betting, aviator games, aviator
    games money – first deposit bonus up to 500 euros.

  79. Sports betting, football betting, cricket betting,
    euroleague football betting, aviator games, aviator games money – first deposit bonus up to 500 euros.

  80. Sports betting, football betting, cricket betting,
    euroleague football betting, aviator games, aviator games money –
    first deposit bonus up to 500 euros.

  81. Sports betting, football betting, cricket betting, euroleague
    football betting, aviator games, aviator games money – first deposit bonus up to 500 euros.

  82. Sports betting, football betting, cricket betting, euroleague football betting,
    aviator games, aviator games money – first deposit bonus
    up to 500 euros.

  83. Sports betting, football betting, cricket betting, euroleague football betting, aviator games, aviator games money –
    first deposit bonus up to 500 euros.

  84. Sports betting, football betting, cricket betting, euroleague football betting, aviator games, aviator games money – first deposit bonus
    up to 500 euros.

  85. Sports betting, football betting, cricket betting, euroleague football betting, aviator games, aviator
    games money – first deposit bonus up to 500 euros.

  86. We stumbled over here coming from a different website
    and thought I may as well check things out. I like what I see so now
    i’m following you. Look forward to exploring your web
    page repeatedly. Win millions in prizes

  87. I know this if off topic but I’m looking into starting my
    own blog and was wondering what all is required to get setup?
    I’m assuming having a blog like yours would cost a pretty penny?

    I’m not very internet savvy so I’m not 100% positive. Any suggestions or
    advice would be greatly appreciated. Kudos Win millions in prizes

  88. After exploring a number of the articles on your blog,
    I honestly appreciate your technique of blogging.
    I added it to my bookmark site list and will be checking back soon. Please visit my website too and
    tell me what you think. Win millions in prizes

  89. Take your trading skills to the next level and make up to $5000 a day.
    The more you earn, the bigger our mutual success.

  90. Reach trading success and start making from $50 to $5000
    a day. The more you earn, the larger our collective profit.

  91. Master the art of trading and generate profits of from
    $50 to $5000 a day. The more you make, the higher our collective
    rewards.

  92. Become a pro trader and start making from $50 to $5000 a day.
    The more you make, the larger our collective
    profit.

  93. Acquire the skills of trading and begin earning from $50 to $5000
    a day. The more you make, the greater our mutual gains.

  94. Get the most out of trading and start earning up to $5000
    a day. The more you make, the bigger our collective gain.

  95. Enhance your trading knowledge and start making from $50 to $5000 a day.

    The more you earn, the higher our mutual gains.

  96. Master the art of trading and make up to $5000 a day.
    The more you earn, the more we both benefit.

  97. Master the art of trading and make up to $5000 a day. The more you earn, the more
    we both benefit.

  98. Become an expert trader and begin making from
    $50 to $5000 a day. The more you make, the greater our collective rewards.

  99. Touche. Sound arguments. Keep up the good spirit. Win millions in prizes

  100. My brother recommended I might like this
    web site. He was entirely right. This post actually made my day.
    You cann’t imagine just how much time I had spent for this info!
    Thanks! Win millions in prizes

  101. Wow that was unusual. I just wrote an incredibly long comment
    but after I clicked submit my comment didn’t show up. Grrrr…
    well I’m not writing all that over again. Anyways, just wanted to say superb blog!
    Win millions in prizes

  102. Take your trading skills to the next level and start earning up to $5000 a day.
    The more you make, the more we both gain.

网站地图