02-08-2011
The .NET Framework RijndaelManaged Class simply accesses the managed version of the .NET Framework Rijndael algorithm.
Rijndael was the winner of the NIST competition to select the algorithm that eventually become AES. There are however some differences between Rijndael and the official FIPS-197 specification for AES which was first published in 2001.
Rijndael allows for both key and block sizes to be chosen independently from 128, 160, 192, 224, 256 bits and the key size does not have to match the block size. FIPS-197 selected a subset of Rijndael and specifies that the block size must always be 128 bits and that the key size may be either 128, 192, or 256 bits (AES-128, AES-192 and AES-256)
Since .NET RijndaelManaged is an implementation of Rijndael, it allows you to select different block sizes (both block and key sizes must be either 128, 192, or 256 bits as 160 and 224 bit are unsupported.) Also .NET RijndaelManaged implementation adjusts block size to match the feedback size in CFB mode, i.e. if you use CFB (and I believe OFB) and a block size of 128 bits, but a feedback size which is not 128 bits you again will not be compatible with AES. As far as I know .NET RijndaelManaged is not FIPS certified.
I am not sure what you mean by .NET SHA512Managed generating "a 64-byte hash key but then it only uses the first 32 bytes as the key" Do you mean, as I suspect you mean, that Rijndael is using a 256-bit key? If this is the case any AES-256 decrypt routine will work for you so long as you know the symmetric key (typically derived from a passphrase.)
You need to clarify block and key sizes if you expect us to be able to help you.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
whats the most sufficient way to make decryption software? What are the recoomendations for one? (3 Replies)
Discussion started by: Phatress
3 Replies
2. UNIX for Advanced & Expert Users
I want to write a server application that would accept HTTP requests from client.
The server would be on a machine that has no connection to the INTERNET.
The clients that would be posting their HTTP requests would be doing so through webbrowser .Thus it would be sort of intranet application.... (0 Replies)
Discussion started by: rraajjiibb
0 Replies
3. Programming
Dear Sir,
i m going to use NP5610-16 moxa device for multiport serial communication.
i m using fedora-core 6 o.s.
after installation it will detect serial ports as /dev/ttyr0,/dev/ttyr1...ttyr32.
there are total 32 com ports.
now i want to write application which monitor all serial ports and... (6 Replies)
Discussion started by: amitpansuria
6 Replies
4. IP Networking
Hi,
We have smb client running on two of the linux boxes and smb server on another linux system. During a backup operation which uses smb, read of a file was allowed while write to the same file was going on.Also simultaneous writes to the same file were allowed.Following are the settings in the... (1 Reply)
Discussion started by: swatidas11
1 Replies
5. Shell Programming and Scripting
Hi,
I don't know if I am in a correct category with my question.
I want to know what decryption-method is used for this password:
(1) The first stadium is (its stored in the settings.xml of my software):... (2 Replies)
Discussion started by: Mogli1977
2 Replies
6. Shell Programming and Scripting
Hi,
Something bizarre is happening while decrypting the files. I had a decrypt script which was working smoothly on
uname -a
Linux ######### 2.6.9-89.ELsmp #1 SMP Mon Apr 20 10:33:05 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
After the front-end application was moved to
uname -a
Linux... (2 Replies)
Discussion started by: dips_ag
2 Replies
7. UNIX for Dummies Questions & Answers
Hi i have the path for encrytion file in unix and i want to decrypt the .cpt file in unix and change the password
how can i do that . (3 Replies)
Discussion started by: lily
3 Replies
8. Shell Programming and Scripting
Hello All,
There are so many questions on this and I didn't find any concluded answer.
I want to encrypt a string in the script, actually this is a password. I tried using openssl (I am a newbie to openssl), but it is generating a long one which we can't remember.
I want to encrypt the... (5 Replies)
Discussion started by: karumudi7
5 Replies
9. Web Development
Hello,
I am newbie on php-mysql and just know only installation.
I have an apache2+php5+mysql installed VPS.
What I would like to do is that when visitor enters requested data shown in index.html, submit button will run a script to save each field into a file.
Here is an example shown in... (1 Reply)
Discussion started by: baris35
1 Replies
10. UNIX for Advanced & Expert Users
Hi all,
I have a code to create folder in application server through shell script and i want to create if conditional based folder
folder=$HOME/test/sample/whatever
if ; then
echo "$folder already exists, not created."
else
mkdir -p "$folder" > /dev/null 2>&1
... (7 Replies)
Discussion started by: Boost
7 Replies
LEARN ABOUT PHP
mcrypt_encrypt
MCRYPT_ENCRYPT(3) 1 MCRYPT_ENCRYPT(3)
mcrypt_encrypt - Encrypts plaintext with given parameters
SYNOPSIS
string mcrypt_encrypt (string $cipher, string $key, string $data, string $mode, [string $iv])
DESCRIPTION
Encrypts the data and returns it.
PARAMETERS
o $cipher
-One of the MCRYPT_ciphername constants, or the name of the algorithm as string.
o $key
- The key with which the data will be encrypted. If it's smaller than the required keysize, it is padded with ' '. It is better
not to use ASCII strings for keys. It is recommended to use the mhash functions to create a key from a string.
o $data
- The data that will be encrypted with the given $cipher and $mode. If the size of the data is not n * blocksize, the data will be
padded with ' '. The returned crypttext can be larger than the size of the data that was given by $data.
o $mode
-One of the MCRYPT_MODE_modename constants, or one of the following strings: "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".
o $iv
-Used for the initialization in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it
is needed for an algorithm, the function issues a warning and uses an IV with all its bytes set to " ".
RETURN VALUES
Returns the encrypted data, as a string.
EXAMPLES
Example #1
mcrypt_encrypt(3) Example
<?php
# --- ENCRYPTION ---
# the key should be random binary, use scrypt, bcrypt or PBKDF2 to
# convert a string into a key
# key is specified using hexadecimal
$key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");
# show key size use either 16, 24 or 32 byte keys for AES-128, 192
# and 256 respectively
$key_size = strlen($key);
echo "Key size: " . $key_size . "
";
$plaintext = "This string was AES-256 / CBC / ZeroBytePadding encrypted.";
# create a random IV to use with CBC encoding
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
# creates a cipher text compatible with AES (Rijndael block size = 128)
# to keep the text confidential
# only suitable for encoded input that never ends with value 00h
# (because of default zero padding)
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
$plaintext, MCRYPT_MODE_CBC, $iv);
# prepend the IV for it to be available for decryption
$ciphertext = $iv . $ciphertext;
# encode the resulting cipher text so it can be represented by a string
$ciphertext_base64 = base64_encode($ciphertext);
echo $ciphertext_base64 . "
";
# === WARNING ===
# Resulting cipher text has no integrity or authenticity added
# and is not protected against padding oracle attacks.
# --- DECRYPTION ---
$ciphertext_dec = base64_decode($ciphertext_base64);
# retrieves the IV, iv_size should be created using mcrypt_get_iv_size()
$iv_dec = substr($ciphertext_dec, 0, $iv_size);
# retrieves the cipher text (everything except the $iv_size in the front)
$ciphertext_dec = substr($ciphertext_dec, $iv_size);
# may remove 00h valued characters from end of plain text
$plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
$ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);
echo $plaintext_dec . "
";
?>
The above example will output:
Key size: 32
ENJW8mS2KaJoNB5E5CoSAAu0xARgsR1bdzFWpEn+poYw45q+73az5kYi4j+0haevext1dGrcW8Qi59txfCBV8BBj3bzRP3dFCp3CPQSJ8eU=
This string was AES-256 / CBC / ZeroBytePadding encrypted.
See also mcrypt_module_open(3) for a more advanced API and an example.
PHP Documentation Group MCRYPT_ENCRYPT(3)