Friday, January 23, 2015

DES Encrypt And Decrypt Working Copy For BlackBerry

 
DES SAmple Encrtyp And Decrypt For BlackBerry Working Fine 
 
import java.io.*;
import net.rim.device.api.crypto.*;
import net.rim.device.api.util.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.util.*;
 
 
public class EncodeDecodeString extends UiApplication
{ 
private TripleDESKey _key;
 
public EncodeDecodeString()
    {
       

    public String encrypt(String plaintext)
    {
        try 
        {
            _key = new TripleDESKey();
            TripleDESEncryptorEngine encryptionEngine = 
                new TripleDESEncryptorEngine(_key);

            // In most cases, the data to encrypt will not fit into the block
            // length of a cipher. When that happens, use a padding algorithm
            // to pad out the last block. This uses PKCS5 to do the padding.
            PKCS5FormatterEngine formatterEngine = new PKCS5FormatterEngine( 
                  encryptionEngine );

            // Use the byte array output stream to catch the encrypted information.
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

            // Create a block encryptor to help use the triple DES engine.
            BlockEncryptor encryptor = new BlockEncryptor( formatterEngine, 
                  outputStream );

            // Encrypt the data.
            encryptor.write( plaintext.getBytes() );

            // Close the stream. This forces the extra bytes to be padded out if 
            // there were not enough bytes to fill all of the blocks.
            encryptor.close();

            // Get the encrypted data.
            byte[] encryptedData = outputStream.toByteArray();
            String strEncrypted = new String(encryptedData);
            return(strEncrypted);

        } 
        catch( CryptoTokenException e ) 
        {
            System.out.println(e.toString());
        } 
        catch (CryptoUnsupportedOperationException e) 
        {
            System.out.println(e.toString());
        } 
        catch( IOException e ) 
        {
            System.out.println(e.toString());
        }
        return "error";
    }
        
    public String decrypt(String ciphertext)
    {
            try
            {
            // Perform the decryption. Since this is a symmetric algorithm, 
            // use the same key as before.
            TripleDESDecryptorEngine decryptorEngine = 
                    new TripleDESDecryptorEngine(_key);

            // Create the unformatter engine to remove padding bytes.
            PKCS5UnformatterEngine unformatterEngine = 
                    new PKCS5UnformatterEngine( decryptorEngine );

            // Set up an input stream to hand the encrypted data to the 
            // block decryptor.
            ByteArrayInputStream inputStream = 
                    new ByteArrayInputStream( ciphertext.getBytes() );

            // Create the block decryptor passing in the unformatter engine and the 
            // encrypted data.
            BlockDecryptor decryptor = 
                    new BlockDecryptor( unformatterEngine, inputStream );

            // Next, read from the stream. This example reads the data 10 bytes 
            // at a time and then adds that new data to the decryptedData array. 
            // For efficiency in a real situation, you should use a value
            // larger than 10. This example uses a small value to demonstrate 
            // several iterations through the loop.
            byte[] temp = new byte[10];
            DataBuffer db = new DataBuffer();
            
            for( ;; ) 
            {
                int bytesRead = decryptor.read( temp );
                if( bytesRead <= 0 )
                {
                    // No more information to read, so leave loop.
                    break;
                }
                db.write(temp, 0, bytesRead);
            }

            // Make sure that the decrypted data is the same as the data  
            // that was passed into the encryptor.
            byte[] decryptedData = db.toArray();
            String strDecrypted = new String(decryptedData);
            return(strDecrypted);         
        } 
        catch( CryptoTokenException e ) 
        {
            System.out.println(e.toString());
        } 
        catch (CryptoUnsupportedOperationException e) 
        {
            System.out.println(e.toString());
        } 
        catch( IOException e ) 
        {
            System.out.println(e.toString());
        }
        return "error";
   }
}

DES Workking Copy For Blackberry

 
DES SAmple Encrtyp And Decrypt For BlackBerry Workking Fine 
 
import java.io.*;
import net.rim.device.api.crypto.*;
import net.rim.device.api.util.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.util.*;
 
 
public class EncodeDecodeString extends UiApplication
{ 
private TripleDESKey _key;
 
public EncodeDecodeString()
    {
       

    public String encrypt(String plaintext)
    {
        try 
        {
            _key = new TripleDESKey();
            TripleDESEncryptorEngine encryptionEngine = 
                new TripleDESEncryptorEngine(_key);

            // In most cases, the data to encrypt will not fit into the block
            // length of a cipher. When that happens, use a padding algorithm
            // to pad out the last block. This uses PKCS5 to do the padding.
            PKCS5FormatterEngine formatterEngine = new PKCS5FormatterEngine( 
                  encryptionEngine );

            // Use the byte array output stream to catch the encrypted information.
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

            // Create a block encryptor to help use the triple DES engine.
            BlockEncryptor encryptor = new BlockEncryptor( formatterEngine, 
                  outputStream );

            // Encrypt the data.
            encryptor.write( plaintext.getBytes() );

            // Close the stream. This forces the extra bytes to be padded out if 
            // there were not enough bytes to fill all of the blocks.
            encryptor.close();

            // Get the encrypted data.
            byte[] encryptedData = outputStream.toByteArray();
            String strEncrypted = new String(encryptedData);
            return(strEncrypted);

        } 
        catch( CryptoTokenException e ) 
        {
            System.out.println(e.toString());
        } 
        catch (CryptoUnsupportedOperationException e) 
        {
            System.out.println(e.toString());
        } 
        catch( IOException e ) 
        {
            System.out.println(e.toString());
        }
        return "error";
    }
        
    public String decrypt(String ciphertext)
    {
            try
            {
            // Perform the decryption. Since this is a symmetric algorithm, 
            // use the same key as before.
            TripleDESDecryptorEngine decryptorEngine = 
                    new TripleDESDecryptorEngine(_key);

            // Create the unformatter engine to remove padding bytes.
            PKCS5UnformatterEngine unformatterEngine = 
                    new PKCS5UnformatterEngine( decryptorEngine );

            // Set up an input stream to hand the encrypted data to the 
            // block decryptor.
            ByteArrayInputStream inputStream = 
                    new ByteArrayInputStream( ciphertext.getBytes() );

            // Create the block decryptor passing in the unformatter engine and the 
            // encrypted data.
            BlockDecryptor decryptor = 
                    new BlockDecryptor( unformatterEngine, inputStream );

            // Next, read from the stream. This example reads the data 10 bytes 
            // at a time and then adds that new data to the decryptedData array. 
            // For efficiency in a real situation, you should use a value
            // larger than 10. This example uses a small value to demonstrate 
            // several iterations through the loop.
            byte[] temp = new byte[10];
            DataBuffer db = new DataBuffer();
            
            for( ;; ) 
            {
                int bytesRead = decryptor.read( temp );
                if( bytesRead <= 0 )
                {
                    // No more information to read, so leave loop.
                    break;
                }
                db.write(temp, 0, bytesRead);
            }

            // Make sure that the decrypted data is the same as the data  
            // that was passed into the encryptor.
            byte[] decryptedData = db.toArray();
            String strDecrypted = new String(decryptedData);
            return(strDecrypted);         
        } 
        catch( CryptoTokenException e ) 
        {
            System.out.println(e.toString());
        } 
        catch (CryptoUnsupportedOperationException e) 
        {
            System.out.println(e.toString());
        } 
        catch( IOException e ) 
        {
            System.out.println(e.toString());
        }
        return "error";
   }
}