Base64加密和字符串的大小写转换

在配置文件的时候,会配置用户名和密码这些敏感的信息,此时需要加密。这里提供一个简单的加密方式,话不多说,直接代码。

导入的有关jar包

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.regex.Pattern;

import org.apache.mina.util.Base64;
import sun.misc.BASE64Decoder;

一:加密


/**
     * 对给定的字符串进行base64加密操作
     * @param inputData
     * @return
     */
    public static String encodeData(String inputData) {
        try {
            if (null == inputData) {
                return null;
            }
            return new String(Base64.encodeBase64(inputData.getBytes("utf-8")), "utf-8");
        } catch (UnsupportedEncodingException e) {
            System.out.println("加密失败!");
        }
        return null;
    }
二:解密

/**
	 * 对给定的字符串进行base64解密
	 * @param s
	 * @return
	 */
	public static String getFromBase64(String s) {
		if (s == null)
			return null;
		BASE64Decoder decoder = new BASE64Decoder();
		try {
			byte[] b = decoder.decodeBuffer(s);
			// 对一些特殊的字符在处理
			String b__ = URLDecoder.decode(new String(b), "utf-8");
			return b__;
		} catch (Exception e) {
		}
		return null;
	}
三:如果想更复杂一些,在加密之前做子母大小写转换

/**
	 * 对给定的字符串进行大小写转换 
	 * @param dbuser
	 * @return
	 */
	public static String makeStringToUpOrLow(String dbuser) {
		String up_Low_string = dbuser;
		String[] u_l_array = up_Low_string.split("");
		// System.out.println("before-----" + up_Low_string);
		StringBuffer again_username = new StringBuffer();
		String low_regu = "^[a-z]+$";
		String up_regu = "^[A-Z]+$";
		int i = 0;
		for (int j = u_l_array.length; i < j; ++i) {
			String arr = u_l_array[i];
			if ((arr != null) && (!("".equals(arr)))) {
				if (Pattern.matches(low_regu, arr))
					arr = arr.toUpperCase();
				else if (Pattern.matches(up_regu, arr))
					arr = arr.toLowerCase();
				again_username.append(arr);
			}
		}
		return again_username.toString();
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于您的问题,我们可以使用加密算法AES或者DES来实现字符串加密和解密。下面是一个使用AES加密算法的Python代码示例: ```python import base64 import hashlib from Crypto import Random from Crypto.Cipher import AES # 对字符串进行加密 def encrypt(text, password): # 使用密码和随机值生成键 key = hashlib.sha256(password.encode("utf-8")).digest() iv = Random.new().read(AES.block_size) cipher = AES.new(key, AES.MODE_CFB, iv) # 加密字符串 ciphertext = cipher.encrypt(text.encode("utf-8")) # 将加密后的字符串和IV值进行编码 encoded_ciphertext = base64.b64encode(ciphertext) encoded_iv = base64.b64encode(iv) return encoded_iv + encoded_ciphertext # 对加密字符串进行解密 def decrypt(encoded_cipher, password): # 解码加密字符串和IV值 encoded_iv = encoded_cipher[:24] encoded_ciphertext = encoded_cipher[24:] iv = base64.b64decode(encoded_iv) ciphertext = base64.b64decode(encoded_ciphertext) # 使用密码和解密向量生成键 key = hashlib.sha256(password.encode("utf-8")).digest() cipher = AES.new(key, AES.MODE_CFB, iv) # 解密字符串 plaintext = cipher.decrypt(ciphertext) return plaintext.decode("utf-8") # 调用示例 password = "my_password_12345" message = "Hello, World! 私は日本人です。" ciphertext = encrypt(message, password) print("密文:", ciphertext) plaintext = decrypt(ciphertext, password) print("明文:", plaintext) ``` 在这里,我们使用密码和随机值生成密钥,并将密钥用于AES算法进行加密和解密。加密后的数据需要编码为Base64格式,以便在不同系统之间进行传输。请注意,这里的加密和解密过程中使用的密码必须相同,否则无法正确解密数据。 以上是一个AES加密算法的Python代码示例,您可以参考这个做法来实现字符串加密和解密。如果您需要其他加密算法的示例代码,也可以在评论区留言,我会尽可能回答您的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值