aes-encryption | AES Encryption in PHP | Encryption library
kandi X-RAY | aes-encryption Summary
kandi X-RAY | aes-encryption Summary
AES Encryption in PHP
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Decrypt data .
- Get the encryption key .
- Encrypt data .
- Get the key sizes for a given encryption method .
- Get the key sizes .
- Decode data .
- Get encryption method
- Returns the IV size
- Decrypt data .
aes-encryption Key Features
aes-encryption Examples and Code Snippets
Community Discussions
Trending Discussions on aes-encryption
QUESTION
Our Security Department doesn’t want us to have JOSS web configuration file (oracle-db.properties) that contain the plain text password of the database that we are connecting to. I was told that I should retrieve the password from a JBOSS Password vault but am having difficulty trying to figure out how to do this and have posted a question to try and find out. (see Java/Spring: How to retrieve password from JBOSS vault )
I am considering whether storing the password encrypted password in the oracle-db.properties and using this AES-Encryption Algorithm shown here, https://howtodoinjava.com/java/java-security/aes-256-encryption-decryption/, to decrypt it (I use the encrypt procedure to determine the encrypted password to put in the oracle-db.properties file). I was thinking that, because the Secret key and salt are stored in the code, it is possible that the code can be reverse compiled to get these values. I was wondering what the pros and cons of this method vs retrieving the password from the JBOSS Vault (https://access.redhat.com/documentation/en-us/red_hat_jboss_web_server/5.3/html/installation_guide/vault_for_jws_) . Would adding the AES 256 to our application generally be sufficient for most companies?
...ANSWER
Answered 2022-Mar-17 at 04:06I was thinking that, because the Secret key and salt are stored in the code, it is possible that the code can be reverse compiled to get these values.
Correct. AES encrypting that password accomplishes almost nothing, and in fact makes things worse: It looks encrypted (because it is), and one would assume the persons doing the encryption wouldn't be so incredibly dense as to leave the key right there next to the password file.
Except that it is effectively right there (they'd have to decompile the class files but that's not difficult and cannot be made difficult), so you've created the wrong impression.
Your security team needs to give you threat models to work with, they can't just say "do not read password from file", because that is impossible. Why can you not do that? What avenue of attack do they want to mitigate?
Examples:
- I do not want a syadmin casually
cat
-ing that file and thus smearing the password all over their screen and in their terminal app's history buffers for anybody to just shouldersurf.
ANSWER: Just base64 it. Yes, it's not crypto at all, but at least it makes no bones about it: Folks will see its base64 and assuming they aren't idiots know that means the password is right there. But it's protected against shouldersurfing and 'accidental' recollection (where someone has seen it with their eyes and may therefore just remember it even if they don't intend to). Someone has to go out of their way to unbase64 it, and if the rules say you can't do that, at least you've now forced an employee to outright break rules and potentially be committing a crime.
- I'm afraid someone will hack the server just barely enough to make it read files and echo them to the hacker.
Then the base64 thing does nothing, nor does the AES plan (as they can also make your webserver cat
its own jars and class files, probably). One solution can be that the script that starts the server reads the file (and is root
-operated, running the server under a webserver
account) - that script reads the password (thus allowing you to make that file owned by root and unreadable by the webserver
account), passes it as argument or environment var. Of course, this requires that you consider the risk of leaking an env var as considerably lower than a text file. Which is certainly possible. Alternatively, the script can write the password in a plain text file readable by the webserver
user, and the webserver will read it, then delete the file. This isn't common, but it shows the point of threat models: Once you know what you're fighting, you can come up with a plan and execute accordingly.
- I want to use JBoss Password Vault
That is not sensible security policy: That is not a threat model. JPV doesn't solve any of these problems, to boot.
- I want a hacker that gains full access to the box, including root and/or write-access for the
webserver
user to not be able to use that as a springboard to hack the DB.
This is impossible, if the security team tells you this is the threat they need you to mitigate, you can tell them to go fetch Harry Potter's magic wand, because without it, you can't deliver. The hacker can simply rewrite your own classes/jars into sending the password to the hacker's servers, for example. This is strongly indicative your security team doesn't know how to do their job: They think of risks no matter how unlikely and demand it is 'protected against' (not really a thing; you can reduce and mitigate, security isn't black and white) without considering threat models or tradeoffs.
Get them educated, or decide to lie to them. You can't win when they act like this otherwise. Go over their heads maybe and get the boss involved.
- I want a hacker that manages to obtain a clone of the entire disk to not be able to access the DB.
Doable, but tricky. One easy way is that the server won't know the password either and will boot in an admin-only-mode, where the admin types the db password into a form which then unlocks the server to run properly. The server can then retain this password in memory only, thus foiling any disk copies. Except, you better turn of swap or store that on a different disk!
If you don't want that manual action, there's TPM chips (windows/linux systems generally) or T2 (apple). I don't know of any java-accessible tools that can do this, or DBs that can. These kinds of algorithms require a challenge/response model, you can't just 'store a password' in these in a meaningful way.
Ask the security team for a budget of 80k or so. If they balk, well, they've learned something. Security is a game of tradeoffs.
QUESTION
Iam encrypting multiple files using chacha-poly1305 and using KDF for password. I can encrypt files but how do i decrypt with random nonce. The function says NEVER REUSE NONCE but then how i do decrypt using random nonces.
If i reuse nonce for file encryption then how safe is it.
Similar question has been asked but the solution wasn't good
Eg code
...ANSWER
Answered 2021-Dec-22 at 18:37In this case, you're using different nonces for encrypting and decrypting. The purpose of a nonce in this case is to allow the reuse of a key without compromising the security.
It's safe to use the same nonce for encrypting a message and decrypting it, and in fact you must do so for things to work. However, you must not reuse the same key/nonce pair for multiple messages. That will both allow tampering with the message and also allow a crib-dragging attack which can leak the plaintext.
ChaCha20-Poly1305 is considered strong and robust. However, because of the small nonce size, you should not use random nonces with it because of the risk of collisions. Instead, generate a random salt from a CSPRNG for each message, derive both the key and nonce for that message from the KDF, and then prepend the salt to the message instead of the nonce. When you decrypt, remove the salt, re-derive the key and nonce, and then use those to decrypt. Alternately, if you have XChaCha20-Poly1305 (note the X), then the nonce size (192 bits) is large enough to use random nonces.
Also, note that PBKDF2, while still secure, is no longer considered state of the art as a password-based key derivation function and scrypt or Argon2id are preferred. In addition, 5 iterations is absurdly weak and your proposed code is vulnerable to a brute force attack, especially with a password of that strength.
QUESTION
I need to decrypt a file coming from an linux box, password protected with Openssl and AES. The encryption is done with
...ANSWER
Answered 2021-Oct-07 at 08:46The code from the 10 year old question you linked actully still works with minor modifications. First note that by default OpenSSL now uses SHA256 as a hash function and not MD5, we can easily fix that. Then, that answer assumes you provide "-base64" option to openssl and get result in base64 and not strange format used by OpenSSL by default, but that's also easy to fix. Just read target file as bytes, then strip ascii-encoded "SALTED__" string from its beginning:
QUESTION
Im super new to encryption and so I tried to recreate a simple ECB AES-128 encryption as displayed with this online tool: https://www.devglan.com/online-tools/aes-encryption-decryption
However, when trying to encrypt the plaintext:
"parameter1=1¶meter2=2&par3=3"
using the key:
"1234567890123456"
im getting different results from the digest R implementation and the abovementioned site.
Namely R gives me the hex result:
"00 63 2a 41 0a 39 0a ab b7 b9 80 b8 f1 4b 07 d9 a7 20 94 d6 b0 5b 57 17 67 68 36 a2 70 ca a2 8f"
while the online tool gives me:
"00 63 2A 41 0A 39 0A AB B7 B9 80 B8 F1 4B 07 D9 1B 09 5D 83 76 9F 6B 47 7E 51 FA D9 99 56 CE 2C B7 5A 26 54 C9 F3 6F EC 36 EF B5 D6 D2 1D 2C 0B"
Whats interesting is that the first 16 bytes are identical, but afterwards it differs.
Here is the code:
...ANSWER
Answered 2021-Jul-30 at 11:12In your online tool, the available keysizes are 128, 196 and 256 bit.
If you take a look at your ECB_AES
, it tells you that your key size in R
is 16
QUESTION
I having trouble decrypting AES-CTR payloads in Node-RED.
As an example I am encoding "Message" here -> https://cryptii.com/pipes/aes-encryption - and then decrypting that result in Node-RED.
...ANSWER
Answered 2021-Jun-01 at 10:51Key, IV and ciphertext are hex encoded and therefore must be parsed with the hex encoder and converted to WordArray
s (also CryptoJS applies a key derivation function if the key is passed as a string).
The ciphertext must be passed as a CipherParams
object.
CTR is a stream cipher mode and does not use padding. In CryptoJS padding must be explicitly disabled, otherwise the default padding (PKCS7) is applied.
QUESTION
I'm trying to decrypt a string using SubtleCrypto that was pre-generated.
Instead of getting decrypted text I'm getting the error: Failed to execute 'decrypt' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'.
...ANSWER
Answered 2021-May-19 at 20:30The parameters have the wrong types: IV and data must be passed as BufferSource
, the key as CryptoKey
, see SubtleCrypto.decrypt()
. A CryptoKey
is returned by SubtleCrypto.importKey()
, which is used to import the key.
WebCrypto API (as low level API) does not provide support for data conversion, e.g. Base64 encoded data or strings to BufferSource
, so other helper methods must be used for this.
The following code decrypts the ciphertext:
QUESTION
I used this link to test decrypting AES CBC.
Here my parameters:
This work. Then I implement with C#. My code:
...ANSWER
Answered 2021-Apr-02 at 05:14You need to initialize the IV to all zeroes because otherwise it starts with a random value:
QUESTION
I would like to decrypt Zigbee paquets from a Xiaomi Aqara switch. Here is the raw encrypted frame I sniffed on a network:
Raw encrypted frame
...ANSWER
Answered 2021-Feb-19 at 08:39The algorithm is AES-128-CCM*, detailed in the section 4.3.1.1 and annex A of the ZigBee specification.
Detailed answer with the frame in the question: https://lucidar.me/en/zigbee/zigbee-frame-encryption-with-aes-128-ccm/
QUESTION
I am trying to encrypt and decrypt strings/files within Kotlin. I am using the following tutorial which is in Java https://mkyong.com/java/java-aes-encryption-and-decryption/ to make this happen.
When I tried to run it, it throws an error of "... Cipher functions:OPENSSL_internal:BAD_DECRYPT ..." It goes wrong when the doFinal is executed within the Decrypt function.
I'am trying to fix this for hours now, but no luck.
This is the code.
...ANSWER
Answered 2021-Jan-08 at 19:27The bug is that in encryptFile()
the salt and IV are determined using the getRandomNonce()
method, which returns a random 16 bytes array. But in decryptFile()
it is assumed that the IV has a length of IV_LENGTH_BYTE
(12 bytes) and the salt has a length of SALT_LENGTH_BYTE
(16 bytes). I.e. both implementations are inconsistent regarding the IV length. Note that for GCM the IV must indeed have a length of 12 bytes.
A possible fix would be to modify the getRandomNonce()
method as follows:
QUESTION
I need to decrypt text data I get from SAP. The data is encrypted using co_aes256_algorithm_pem similar to this
SAP sends me a key and data encrypted and we should use this key to decrypt the data in Java. In SAP side, The IV Value (32 0's is added to padding )
Below is an example of key and encrypted data. I am trying to decrypt it in simple java program but can not initiate a key with with suitable length.
...ANSWER
Answered 2020-Aug-26 at 16:33I can decrypt the ciphertext if key and ciphertext are hex decoded (e.g. with hexStringToByteArray
()), AES-256 is used in CBC mode with a zero vector as IV (i.e. 16 0x00
values), and no padding: AES/CBC/NoPadding
. If a padding is applied, i.e. AES/CBC/PKCS5Padding
, a BadPaddingException is thrown.
The decrypted plaintext begins and ends as follows:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install aes-encryption
PHP requires the Visual C runtime (CRT). The Microsoft Visual C++ Redistributable for Visual Studio 2019 is suitable for all these PHP versions, see visualstudio.microsoft.com. You MUST download the x86 CRT for PHP x86 builds and the x64 CRT for PHP x64 builds. The CRT installer supports the /quiet and /norestart command-line switches, so you can also script it.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page