- This is the first tool I made while learning the Crystal language. ( ≈ 1 year ago )
- This is very different from my current idea, I will rewrite it in the future.
- Use
Base64
stream instead of offset (English uppercase / lowercase). - Better structure, clear syntax, ...
- Use
- This is very different from my current idea, I will rewrite it in the future.
- In the future, once I have free time, I may rewrite it using Rust, and port to
WebAssembly
. - Due to the need to maintain other Crystal repositories, this project will be temporarily put on hold.
- Currently, this repository is non-first priority,
2020-03-29 16:38:37.932649000 UTC
.
- Currently, this repository is non-first priority,
- Use multiple Cryptographic hash function.
- Based on the
Char
(Unicode) offset character. - Slide to adjust the secret key length.
- Confound the results of password.
- Create an indestructible password.
- create more (e.g. email, user_name, pin).
- Shield generates One-way security password.
- Shield.cr will never save any data.
- Specify the Number of Iterations.
- Specify the Length of SecretKey (Between 10 to 99).
- Create Email / UserName / PIN Code.
- Sliding to Create Secret Key.
- Enable / Disable the Secret Key symbol Feature.
- More Code Comments to be added.
- More Spec Tests to be added.
- More Wiki Information to be added.
- Shield CLI Password Vault (Shadow.cr).
- Shield.cr Windows / iOS Support.
- ...
- SecureId
- UUID-Sha384
- SecretKey
- (sha512WithRSAEncryption + HMAC + (Pbkdf2HMAC * 32)) * iterations
- _id_: OpenSSL#Digest
- Digest(data: titleName, "sha384")
- left, right = getCenter
- [left..right] -> UUID -> UpCase
- _rsa_: OpenSSL#Digest
- Digest(data: key, algorithm: sha512WithRSAEncryption) + : + SecureId
- Slide
- _hmac: OpenSSL#HMAC
- SecureId + : + HMAC(data: _rsa_, key: Crc32(_rsa_).reverse)
- pbkdf: OpenSSL#PKCS5#Pbkdf2HMAC
- Pbkdf2HMAC(secret: _hmac, salt: _rsa_, iterations: 2 ** 5, algorithm: SHA512)
- Slide
- _key_: Shield#Character#obfuscate
- Obfuscate(pbkdf[PbkdfSlider.left..PbkdfSlider.right].reverse)
- ...
- IterativeKey(iterations) -> Done -> yield done?, _key_.
Add this to your application's shard.yml:
dependencies:
shield:
github: 636f7374/shield.cr
$ git clone https://github.com/636f7374/shield.cr.git
$ cd shield.cr && make build && make install
$ make test
Name | Creator | Maintainer | Contributor |
---|---|---|---|
636f7374 | √ | √ | |
delef | √ |
- MIT License