- 授权协议: GPLv3
- 开发语言: PHP
- 操作系统: 跨平台
- 软件首页: https://paragonie.com/project/halite
- 软件文档: https://github.com/paragonie/halite/blob/master/README.md
- 官方下载: https://github.com/paragonie/halite/archive/master.zip
软件介绍
Halite 是PHP项目中一个简单的libsodium封装包。Halite提供高级的加密接口,依靠其所有潜在的密码操作libsodium。
Halite 基本 API:
Encryption
Anonymous
Authenticated
Asymmetric\Crypto::seal(HiddenString,EncryptionPublicKey):stringAsymmetric\Crypto::unseal(string,EncryptionSecretKey):HiddenStringAsymmetric\Crypto::encrypt(HiddenString,EncryptionSecretKey,EncryptionPublicKey):stringAsymmetric\Crypto::decrypt(string,EncryptionSecretKey,EncryptionPublicKey):HiddenStringSymmetric\Crypto::encrypt(HiddenString,EncryptionKey):stringSymmetric\Crypto::decrypt(string,EncryptionKey):HiddenStringSymmetric
Asymmetric
Authentication
Asymmetric\Crypto::sign(string,SignatureSecretKey):stringAsymmetric\Crypto::verify(string,SignaturePublicKey,string):boolSymmetric\Crypto::authenticate(string,AuthenticationKey):stringSymmetric\Crypto::verify(string,AuthenticationKey,string):boolSymmetric
Asymmetric
示例1:加密解密消息
首先,生成一个key
<?php use ParagonIE\Halite\KeyFactory; $encKey = KeyFactory::generateEncryptionKey(); KeyFactory::save($encKey, '/path/outside/webroot/encryption.key');
然后,加密解密消息
<?php
use ParagonIE\Halite\HiddenString;
use ParagonIE\Halite\KeyFactory;
use ParagonIE\Halite\Symmetric\Crypto as Symmetric;
$encryptionKey = KeyFactory::loadEncryptionKey('/path/outside/webroot/encryption.key');
$message = new HiddenString('This is a confidential message for your eyes only.');
$ciphertext = Symmetric::encrypt($message, $encryptionKey);
$decrypted = Symmetric::decrypt($ciphertext, $encryptionKey);
var_dump($decrypted === $message); // bool(true)示例2:用password-derived key 加密消息
<?php
use ParagonIE\Halite\HiddenString;
use ParagonIE\Halite\KeyFactory;
use ParagonIE\Halite\Symmetric\Crypto as Symmetric;
$passwd = new HiddenString('correct horse battery staple');
// Use random_bytes(16); to generate the salt:
$salt = "\xdd\x7b\x1e\x38\x75\x9f\x72\x86\x0a\xe9\xc8\x58\xf6\x16\x0d\x3b";
$encryptionKey = KeyFactory::deriveEncryptionKey($passwd, $salt);
$message = new HiddenString('This is a confidential message for your eyes only.');
$ciphertext = Symmetric::encrypt($message, $encryptionKey);
echo $ciphertext, "\n";
Rapid Web Applications with TurboGears
Mark Ramm、Kevin Dangoor、Gigi Sayfan / Prentice Hall PTR / 2006-11-07 / USD 44.99
"Dear PHP, It's over between us. You can keep the kitchen sink, but I want my MVC. With TurboGears, I was able to shed the most heinous FileMaker Pro legacy 'solu-tion' imaginable. It has relationshi......一起来看看 《Rapid Web Applications with TurboGears》 这本书的介绍吧!
