加密方式连接数据库

本文介绍了如何在Java中利用DES加密技术来安全地连接数据库。首先,详细讲解了如何创建一个DES加密解密工具类,然后展示了如何设计一个继承自PropertyPlaceholderConfigurer的属性配置器,该配置器支持处理加密的属性值。最后,通过实例演示了如何运用这些工具来安全地建立数据库连接。
摘要由CSDN通过智能技术生成
信息的加密可分为对称和非对称两种方式,前者表示加密后的信息可以解密成原值,而后者则不能根据加密后的信息还原为原值;
MD5属于非对称加密,而DES属于对称加密;

定义DES加密解密工具类

package com.smart.util;


import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import java.io.IOException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

public class DESUtil {
   

    //指定DES加密解密所用的秘钥
    private static Key key;
    private static String KEY_STR="myKey";
    static{
   
        KeyGenerator generator= null;
        try {
   
            generator = KeyGenerator.getInstance("DES");
            generator.init(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#中,数据库连接字符串通常包含敏感信息,如用户名、密码和服务器地址,这些信息直接写入代码可能增加安全风险。为了保护这些数据不被暴露,可以采用加密方式来处理数据库连接字符串。 一种常见的做法是在程序运行时动态生成或管理加密后的连接字符串。这可以通过以下步骤实现: 1. **明文连接字符串**:首先,你需要将未加密的连接字符串存储在一个安全的地方,例如配置文件(`app.config`或`web.config`)中的 `<connectionStrings>` 节点中。 ```xml <configuration> <connectionStrings> <add name="MyDB" connectionString="Data Source=your_server;Initial Catalog=my_database;User ID=my_user;Password=my_password;" providerName="System.Data.SqlClient"/> </connectionStrings> </configuration> ``` 2. **加密**:使用C#的`System.Security.Cryptography`命名空间提供的算法(比如`AesCryptoServiceProvider`),对连接字符串进行加密。你可以选择将整个字符串加密,也可以只对敏感部分如密码加密。 ```csharp using System.Security.Cryptography; // ... string plainConnectionString = ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString; byte[] encryptedBytes = Encrypt(plainConnectionString, yourEncryptionKey); string encryptedConnectionString = Convert.ToBase64String(encryptedBytes); ``` 3. **解密**:当需要使用连接字符串时,从配置或其他安全位置获取加密的字符串,然后解密。同样用相同的密钥进行解密操作。 ```csharp byte[] decryptedBytes = Decrypt(encryptedConnectionString, yourEncryptionKey); string decryptedConnectionString = Encoding.UTF8.GetString(decryptedBytes); ``` **相关问题--:** 1. C#中有哪些常用的加密算法可用于连接字符串? 2. 如何在C#中保存和管理加密密钥? 3. 解密过程在什么情况下可能会失败?如何处理这种情况?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值