首页
学习
活动
专区
工具
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,那么加密之后尽管字符串是乱码,但相关部分也是重复的。

95640
  • Java中的加密和解密是什么,提供一个使用加密和解密的实际案例

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

    17710

    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); } } 通过调用这两个类中加密和解密函数就可以做到安全有效的加密和解密啦

    80730

    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.7K20

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

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

    2.4K10

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

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

    4.1K80

    Java中IO流-21-图片加密简单实现

    大家好,又见面了,我是你们的朋友全栈君。 这篇我们利用流来处理图片加密,当然这里没有处理到打开图片,提示输入密码的这么好友好效果。...图片加密,也是把一个图片字节读取,然后进行加密运算,最后拷贝成新的图片文件。简单来说,这个过程原理就是,一个数如何被同一个数异或两次,那么结果就等于这个数本身。...第一次进行异或就是图片加密过程,给图片每一个字节都进行加密,第二次异或就是解密过程。...2.图片解密过程 只需要调整两行代码,把打开失败图片当做流对象进行性读取,然后写入到新图片,新的图片就是解密之后的文件。...= -1) { fos.write(b ^ 123); } fis.close(); fos.close(); } } 图片加密的简单实现就是这样,上面代码里面的异或

    86020
    领券