首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

快速简单的字符串在JAVA中加密/解密

在Java中,可以使用Java标准库中的加密和解密工具进行快速简单的字符串加密/解密。以下是一个简单的示例,使用Java标准库中的Cipher类进行AES加密/解密。

首先,需要导入以下依赖:

代码语言:java
复制
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;

然后,可以创建一个加密/解密的工具类:

代码语言:java
复制
public class AESUtil {

    private static final String ALGORITHM = "AES";
    private static final String TRANSFORMATION = "AES";

    public static String encrypt(String key, String data) throws Exception {
        SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), ALGORITHM);
        Cipher cipher = Cipher.getInstance(TRANSFORMATION);
        cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
        byte[] encryptedBytes = cipher.doFinal(data.getBytes());
        return Base64.getEncoder().encodeToString(encryptedBytes);
    }

    public static String decrypt(String key, String encryptedData) throws Exception {
        SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), ALGORITHM);
        Cipher cipher = Cipher.getInstance(TRANSFORMATION);
        cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
        byte[] decodedBytes = Base64.getDecoder().decode(encryptedData);
        byte[] decryptedBytes = cipher.doFinal(decodedBytes);
        return new String(decryptedBytes);
    }
}

接下来,可以使用该工具类进行加密/解密操作:

代码语言:java
复制
public static void main(String[] args) {
    String key = "1234567812345678"; // 密钥长度必须为16、24或32字节
    String data = "Hello, world!";

    try {
        String encryptedData = AESUtil.encrypt(key, data);
        System.out.println("Encrypted data: " + encryptedData);

        String decryptedData = AESUtil.decrypt(key, encryptedData);
        System.out.println("Decrypted data: " + decryptedData);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

以上示例中,我们使用了AES加密算法,并使用了Java标准库中的Cipher类进行加密/解密操作。需要注意的是,加密和解密时使用的密钥必须相同,且密钥长度必须为16、24或32字节。

此外,还可以使用其他加密算法和工具类进行加密/解密操作,例如DES、RC4、RSA等算法,以及Java标准库中的其他加密工具类。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.Net加密解密

.Net加密解密 2008-10-2 作者: 张子阳 分类: .Net 框架 引言 一些比较重要应用场景,通过网络传递数据需要进行加密以保证安全。...本文将简单地介绍了加密解密一些概念,以及相关数字签名、证书,最后介绍了如何在.NET对数据进行对称加密解密。...对称加密 对称加密思路非常简单,就是含有一个称为密钥东西,消息发送前使用密钥对消息进行加密,在对方收到消息之后,使用相同密钥进行解密。....NET中加密解密支持 对称加密解密 相信通过前面几页叙述,大家已经明白了加密解密、数字签名基本原理,下面我们看一下.NET是如何来支持加密解密。...这里简单解释一下IV(initialization vector),如果一个字符串(或者数据)加密之前很多部分是重复比如ABCABCABC,那么加密之后尽管字符串是乱码,但相关部分也是重复

94840
  • Java加密解密是什么,提供一个使用加密解密实际案例

    Java加密解密是信息安全领域中非常重要概念,它们用于保护数据机密性和完整性。加密是指将明文转换为密文过程,而解密则是将密文还原为明文过程。...实际应用,我们通常使用一些加密算法来对数据进行加密,以保护数据安全性。 对称加密算法和非对称加密算法是加密解密两种主要方式。...Java,我们可以使用各种加密算法来对数据进行加密解密,比如AES、DES、RSA等。...首先,我们需要导入Java加密库,比如JCE(Java Cryptography Extension),然后使用AES算法对数据进行加密解密。...加密解密是信息安全领域中非常重要部分,它们能够帮助我们保护数据安全性,防止数据泄露和篡改。Java,我们可以使用丰富加密库和算法来对数据进行加密解密,以满足不同场景下安全需求。

    16510

    Android自带加密解密

    在当今社会信息安全越来越重要,其中最为关键就是传输过程安全。这就需要一套安全可靠且有效加密解密算法来实现。 Android中有一套成熟加密解密模块。...数据源 * @param key * 密钥,长度必须是8倍数 * @return 返回加密数据 * @throws Exception */ public...* @param key * 密钥,长度必须是8倍数 * @return 返回解密原始数据 * @throws Exception */ public static...stmp = ""; for (int n = 0; n < b.length; n++) { stmp = (Integer.toHexString(b[n] & 0XFF));//变为十六进制字符串...Exception { File file = new File(path); decompress(file, delete); } } 通过调用这两个类中加密解密函数就可以做到安全有效加密解密

    78330

    C语言实现字符串加密解密

    项目开发,为了防止一些敏感信息泄露,通常我们会对这些信息进行加密,比如用户登录密码,如果不加密直接进行明文存储的话,就很容易被人看到,但密码对用户来说是保密,因此我们需要对数据进行加密后再存储...今天,我们就来写一个小小例子来模仿一下字符串加密解密过程。...break; } else { printf("请按提示输入:\n"); } printf("输入1加密明文,输入2对刚加密明文进行解密...退出程序:\n"); printf("请按提示输入:\n"); scanf("%d",&result); } return 0; } 运行结果: 程序分析: 这里采用加密算法十分简单...,就是将字符串每个字符加上它在字符串位置和一个偏移值5,cryptograph[i] = text[i] + i + 5;//加密 我们输入字符串是helloworld,第一个字符h字符串位置是

    1.6K20

    密码学区块链应用:哈希算法与加密解密算法

    本文选自《商用区块链技术与实践》一书,主要讲解密码学区块链应用。...▊ 定义 哈希算法可以极短时间内,将任意长度二进制字符串映射为固定长度二进制字符串,输出值称为哈希值(Hash Value)或者数字摘要(Digital Digest)。...任意输入值(Message)二进制编码经过哈希函数计算后,可以得出n比特一个0、1字符串哈希值,不同算法n取值可能不同,例如128、160、192、256、384或512等。...区块链系统,区块链账户地址生成、数据传输还会用到支持加密解密密码体制。密码体制分为对称密码体制和非对称密码体制。...非对称密码体制将加密解密能力分开:多用户加密结果由一个用户解密,可用于公共网络实现保密通信;单用户签名信息可由多用户验证,可用于实现对用户身份认证。

    2.2K10

    数据库连接字符串处理方法!加密解密连接字符串

    连接字符串内容在这里就不讨论了,这里主要说一下他存放位置和读取方法。 我们要达到目的:无论连接字符串如何变化,都不需要修改项目! 1.把连接字符串写在程序里面。...;initial catalog=数据库名称" key="connString" /> </APPSETTINGS> 然后需要地方调用就可以了。...5.综合 以上个四种方法各有优越缺点,用哪一个都不是最好,另外还有一个问题没有提及 —— 加密连接字符串。 那么一个项目里,怎么做才是最好方法呢? —— 分层。...项目 <——类(DLL文件) <——存放连接字符串位置 A.对于项目来说呢只需要知道:当我要用连接字符串时候我到DLL里面(调用函数)读取就行了,至于连接字符串具体存放位置、是否加密等都不必关心。...如果是直接读取web.config,那么如果web.config里面放加密连接字符串,那怎么处理?是不是要修改项目,或者是数据层。不要认为修改数据层就不是修改项目了。

    4.1K80
    领券