A. SQL数据库里的密码解密
什么管理软件啊,都不说。加密算法都没有,建议你直接找如来佛祖帮你搞顶
B. 急求Oracle数据库中MD5解密方法!!!
MD5解密方法
我在存储数据库的时候,通过md5加密方法将字段进行加密,当我在读取该字段时如何正确的读取原来的值啊
------解决方案--------------------
没办法,MD5是不可逆的。
你需要使用可逆加密算法。
------解决方案--------------------
插入表中的时候md5加密
比如:
$sql= "insert into register(names,pswd,repswd) values( '$_POST[names] ',md5( '$_POST[pswd] '),md5( '$_POST[repswd] ')) ";
$qid=mysql_query($sql);
读取的时候
$pswd=empty($_POST[ 'pswd '])? ' ':md5($_POST[ 'pswd ']);
------解决方案--------------------
如果业务要求可还原,那么不要采用MD5,请使用可逆加密算法,如DES加密。
MD5为不可逆散列算法,可用于存储用户密码,存储后不需要永远不需要知道明文。密码比较时只需将用户输入的密码再次转成MD5码与存储的相比较即可得知用户输入密码是否正确。
linux/unix操作系统一般采用MD5进行用户密码加密。
------解决方案--------------------
MD5目前所谓的破解只是采用碰撞法找到了对等因子。
比如:string1的MD5码为MD1,而现在我们做到的只是又找到了一个string2,它的MD5码也是MD1。
结果就是:用户登陆某采用MD5加密的系统时,本来密码是12345,现在可能用abcde也能登陆。
想想可能还原吗?如果可以还原,那天大的信息也能用32位长的字符串表示了,这不成了超级压缩算法了吗,整个宇宙的信息都可以用32位长表示了。不可逆的!
C. 数据库中的内容被加密后的解密方法
要具体看是用什么方法加密的,密码加密一般是用MD5,不可逆的.也就是无法用算法解密,只能用穷举破解.
D. 请问在SQL数据库拿出来的密文怎么解密啊
这个……你先要知道它的加密算法,然后才可能针对加密算法设计解密方案。(即使是暴力破解,也先得有个方向吧。)
E. SQLsever数据库加密算法,C#
//这个是我拿别人固定密匙改成随机密匙的加解密静态类,希望对你有帮助
//做成随机密匙的想法是:让同一个明文密码,存在数据库中的密文是完全不一样的(如果是固定密匙,则明文一样则密文就完全一样)
public static class MakePW //静态类:加密解密类
{
//默认密钥向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/// 加密密钥,要求为8位
//private static string TKey = "T1234567";
public static string EncryptPW(string encryptString)//加密
{
string encryptKey;
encryptKey = TKey(8);//获得8位随机钥匙
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return encryptKey + Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;//返回钥匙+加密后的字符串
}
}
public static string DecryptPW(string decryptString)//解密
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptString.Substring(0,8));//获得密钥
decryptString = decryptString.Substring(8, decryptString.Length - 8);//去除密钥
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
internal static string TKey(int pwdlen)//产生随机字符串,获取随机密钥
{
string pwdchars = "~!@#$%^&*()_+";
string tmpstr = "";
int iRandNum;
Random rnd = new Random();
for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);
tmpstr += pwdchars[iRandNum];
}
return tmpstr;
}
}
F. 帮帮忙!!数据库MD5解密的问题~!!
MD5是标准的不可逆加密算法,没法恢复.
是有个新闻说上海有个女研究生攻克了MD5算法,她是找到了计算MD5散列碰撞的方法,并不是说可以恢复经过MD5加密的字符串。
G. 数据库中的解密
如果不知道秘钥以及解密算法的话基本没可能会解密成功,或者你可以找大神帮你解密,但是没几个人能解密成功!
H. 如何对数据库进行加密和解密
数据库账号密码加密详解及实例
数据库中经常有对数据库账号密码的加密,但是碰到一个问题,在使用UserService对密码进行加密的时候,spring security 也是需要进行同步配置的,因为spring security 中验证的加密方式是单独配置的。如下:
<authentication-manager>
<authentication-provider user-service-ref="userDetailService">
<password-encoder ref="passwordEncoder" />
</authentication-provider>
</authentication-manager>
<beans:bean class="com.sapphire.security.MyPasswordEncoder" id="passwordEncoder">
<beans:constructor-arg value="md5"></beans:constructor-arg>
</beans:bean>
如上述配置文件所示,passwordEncoder才是在spring security对账号加密校验的地方。
spring security在拦截之后,会首先对用户进行查找,通过自己定义的userDetailService来找到对应的用户,然后由框架进行密码的匹配验证。
从userDetailService得到user以后,就会进入到DaoAuthenticationProvider中,这是框架中定义的 ,然后跳入其中的authenticate方法中。
该方法会进行两个检查,分别是
* preAuthenticationChecks : 主要进行的是对用户是否过期等信息的校验,调用的方法在userDetail中有定义的。
* : 这个就是用户名密码验证的过程了。
而PasswordEncoder是我们xml中注入的bean,所以了,我们调用的则是我们自己完成的passwordEncoder
public class MyPasswordEncoder extends MessageDigestPasswordEncoder {
public MyPasswordEncoder(String algorithm) {
super(algorithm);
}
@Override
public boolean isPasswordValid(String encPass, String rawPass, Object salt) {
return encPass.equals(DigestUtils.md5DigestAsHex(rawPass.getBytes()));
}
}
这是我对其实现的一个简单版本,调用的就是spring自带的加密算法,很简单了,当然也可以使用复杂的加密方法,这个就靠自己了
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
I. ★sql server数据库里什么加密算法加密后为12位数字
for i = 1 to len
p_pass = string(asc(mid(parent.sle_2.text,i,1))) + p_pass
next
//的意思是从左到右依次取出parent.sle_2.text内的字符,将他们转换为asc码后,从右到左存入p_pass中(先取出的先存进)
解密就是,把asc码转换为字符,再倒序就是密码了.
关键在于找出数字密码中正确的asc码.
理论上ASCⅡ码是从0-127,但是实际上只用判断33-126。
密码的asc码范围在33-126中,所以只用判断每两位的首位是否大于1,大于1则取两位,否则取3位,然后从剩下位置的开始从新判断
定义数组a //用于存入数字密码
定义数组b //用于保存结果,
定义ii = 0 //数组b下标,初始化为0
定义函数f(i) //参数i为数组a下标
f(0) //调用函数,初始参数为0
f(i) //函数实现
{
判断a[i]是否为空,不为空则
{
判断如果a[i]>1
b[ii]=a[i]+a[i+1]
ii++
f(i+1)
否则
b[ii]=a[i]+a[i+1]+a[i+2]
ii++
f(i+2)
}
否则a[i]为空,退出函数
}
得到数组b每个元素保存的就是正确的asc码,
将asc码转换为对应字符,倒序,就是你要的结果了.
由于不清楚使用的什么语言,所以我没有直接写出代码,不过上面的解释已经够清楚了吧,
另:这个加密算法非常简单,
但是如果不是我想的这么简单,mid(),asc(),string()被重载过了,很遗憾你必须找出他们的重载函数,才能对症下药,我这里的方法就要改变了