簡體   English   中英

用php加密

[英]encryption with php

如何使用 php 使用密鑰加密事物? 我寧願不必安裝 Mcrypt。 我還需要加密非常強大。

phpseclib與例如怎么樣。 AES? 將在可用的情況下使用 mcrypt,否則將使用原生 PHP 實現。 當然,這會很慢,但這是不可避免的。

來自http://www.ibm.com/developerworks/opensource/library/os-php-encrypt/

... 使用 PGP 和其他公鑰加密方法,無法從公鑰中推斷出某人的私鑰。

... PGP 的一個附加功能是私鑰的密碼並不是真正的密碼。 這是一個密碼。 它可以是一個完整的說法,包括標點符號、空格和各種字符。

... 使用基於 PGP 的公鑰加密的一種方法是使用 GNU Privacy Guard (GPG)。 任何使用 GPG 加密的消息都可以使用 GPG、PGP 或任何數量的支持任一程序的電子郵件客戶端插件來解密。 在示例中,在線表單接受用戶輸入,包括消息; 使用 GPG 為特定收件人加密該消息; 然后發送它。

例子:

<?php
    //set up users
    $from = "webforms@example.com";
    $to = "you@example.com";

    //cut the message down to size, remove HTML tags
    $messagebody = strip_tags(substr($_POST['msg'],0,5000));
    $message_body = escapeshellarg($messagebody);

    $gpg_path = '/usr/local/bin/gpg';
    $home_dir = '/htdocs/www';
    $user_env = 'web';

    $cmd = "echo $message_body | HOME=$home_dir USER=$user_env $gpg_path" .
        "--quiet --no-secmem-warning --encrypt --sign --armor " .
        "--recipient $to --local-user $from";

    $message_body = `$cmd`;

    mail($to,'Message from Web Form', $message_body,"From:$from\r\n");

?>

對於單向加密,我總是使用phpass

我相信它會嘗試一些加密方法並回退以防它們在您的構建中不可用。

嘗試 openssl_xxx 函數。 里面有 RSA 和 Diffie-Hellman。 也許更多,我只使用這些。

使用眾多內置 php 函數和可用庫之一將是最好的方法。 或者,您可能想要編寫自己的加密類,類似於這里的一個,以防您可能想要加密要在 URL 中傳遞的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM