Use the RSA private Key to decrypt the data. - Java Security

Java examples for Security:RSA

Description

Use the RSA private Key to decrypt the data.

Demo Code

/**/* ww  w.  j av  a2 s. c o m*/
 * RSAUtil.java
 *
 * Copyright 2011 Niolex, Inc.
 *
 * Niolex licenses this file to you under the Apache License, version 2.0
 * (the "License"); you may not use this file except in compliance with the
 * License.  You may obtain a copy of the License at:
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */
import java.security.Key;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
import javax.crypto.Cipher;

public class Main{
    /**
     * Use the private Key to decrypt the data.
     *
     * @param data the data to be decrypted
     * @param key the key used to do decryption
     * @return the decrypted data
     * @throws IllegalStateException If Your JDK don't support RSA.
     * @throws IllegalArgumentException If failed to decrypt the data.
     */
    public static byte[] decryptByPrivateKey(byte[] data, String key) {
        Key privateKey = getPrivateKey(key);
        return decrypt(data, privateKey);
    }
    /**
     * Use RSA to decrypt the data.
     *
     * @param data the data need to be decrypted
     * @param key the key used to do decryption
     * @return the decrypted data
     * @throws IllegalArgumentException Failed to decrypt the data.
     */
    public static byte[] decrypt(byte[] data, Key key) {
        try {
            Cipher cipher = Cipher.getInstance(ALGORITHM);
            cipher.init(Cipher.DECRYPT_MODE, key);
            return CipherUtil.process(cipher, 128, data);
        } catch (Exception e) {
            throw new IllegalArgumentException(
                    "Failed to decrypt the data.", e);
        }
    }
}

Related Tutorials