strukt / key
Cryptography
v1.1.0-alpha
2024-03-24 23:50 UTC
Requires
- php: ^8.1
- ext-openssl: *
- firebase/php-jwt: ^6.10
- strukt/commons: v1.1.1-alpha
- strukt/console: 1.0.0
- symfony/http-foundation: ^4.2
This package is auto-updated.
Last update: 2025-01-06 21:14:45 UTC
README
Installation
Composer
Create composer.json
script with contents below then run composer update
{ "require":{ "strukt/key":"v1.1.0-alpha" }, "minimum-stability":"dev" }
Hashing
Bcrypt
$hash = bcry("p@55w0rd")->encode() $success = bcry("p@55w0rd")->verify($hash);
Sha256 (Doubled)
$hash = sha256dbl('p@55w0rd');
Public & Private Keys
Auto generate keys
$k = Strukt\Ssl\All::makeKeys() $k->getKeys()->getPrivateKey()->getPem()//get private key $k->getKeys()->getPublicKey()->getPem()//get public key $c = $k->useCipher() $enc = $c->encrypt("p@55w0rd") $dec = $c->decrypt($enc)
Use existing key
You can generate your key via ssh-keygen
if you wantta.
$file = "file:///home/churchill/.ssh/id_rsa" $k = Strukt\Ssl\All::keyPath($file)
Encrypt message with public key
$message = "Hi! My name is (what?) My name is (who?) My name is Slim Shady Hi! My name is (huh?) My name is (what?) My name is Slim Shady"; $file = "file:///home/churchill/.ssh/id_rsa.pub" $p = new Strukt\Ssl\KeyPair();//No private key $p->setPublicKey($file); $enc = Strukt\Ssl\All::useKeys($p)->toSend($message);
Encrypt with password
$p = new Strukt\Ssl\KeyPair($path, "p@55w0rd"); $p->getPublicKey()//trigger public key extraction from private key $k = Strukt\Ssl\All::useKeys($p)
Certificate Signing Request (CSR)
Sign & verify certificate
$kpath = "file:///home/churchill/.ssh/id_rsa" $cpath = "file:///home/churchill/.ssh/cacert.pem" $oCsr = Strukt\Ssl\All::keyPath($kpath)->withCert($cpath); $cert = $oCsr->sign(); $success = $oCsr->verify($cert);