当前位置:首页 » 密码管理 » 用函数加密

用函数加密

发布时间: 2023-01-05 23:59:09

php文本加密函数

给你个我常用的,也符合你的要求,很好用哦。 /**
* 采用RC4为核心算法,通过加密或者解密用户信息
* @param $string - 加密或解密的串
* @param $operation - DECODE 解密;ENCODE 加密
* @param $key - 密钥 默认为AUTHKEY常量
* @return 返回字符串
*/ define('AUTHKEY', 'yl_chen');
function MooAuthCode($string, $operation = 'DECODE', $key = '', $expiry = 0) { /**
* $ckey_length 随机密钥长度 取值 0-32;
* 加入随机密钥,可以令密文无任何规律,即便是原文和密钥完全相同,加密结果也会每次不同,增大破解难度。
* 取值越大,密文变动规律越大,密文变化 = 16 的 $ckey_length 次方
* 当此值为 0 时,则不产生随机密钥
*/
$ckey_length = 4;
$key = md5($key ? $key : md5(AUTHKEY.$_SERVER['HTTP_USER_AGENT']));
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : ''; $cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey); $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string); $result = '';
$box = range(0, 255); $rndkey = array();
for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
} for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
} for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
} if($operation == 'DECODE') {
if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
return substr($result, 26);
} else {
return '';
}
} else {
return $keyc.str_replace('=', '', base64_encode($result));
}}

② 编写一个数据加密函数(用C编写)

这个问题并不难,两个数组很容易实现
main()
{
int i,a[4],b[4];
printf("请输入四个数字: ");
for(i=0;i<4;i++)
scanf("%d",a[i]);
b[0]=(a[3]+6)%8;
b[1]=(a[2]+6)%8;
b[2]=(a[1]+6)%8;
b[3]=(a[0]+6)%8;
printf("原数组是:")
for(i=0;i<4;i++)
printf("%d",a[i])
printf("加密后的数组是:")
for(i=0;i<4;i++)
printf("%d",b[i])
}

③ js使用用自定义函数加密了,已经知道加密用函数,翻译出原文的方法,谢谢

这是ew_dc
functionew_dc(s){
vard='',k=0,a=newArray(),r;
for(i=0;i<s.length;i++){
c=s.charCodeAt(i);
if(c<128)c^=5;d+=String.fromCharCode(c);
if((i+1)%99==0){
a[k++]=d;d='';
}
}
r=a.join('')+d;
document.write(r);
}

解密
functioncd_we(r){
vard='',k=0,a=newArray(),s;
for(i=0;i<r.length;i++){
c=s.charCodeAt(i);
if(c<128)c^=5;d+=String.fromCharCode(c);
if((i+1)%99==0){
a[k++]=d;d='';
}
}
s=a.join('')+d;
document.write(s);
}
//两个函数其实一样O(∩_∩)O哈!把用ew_dc处理过的字符串再用它处理一次就行了

④ C语言的加密函数问题。

char* encode(const char* str)
{
int i, s;
s = 0;
for(i = 0; str[i]; i++) s += str[i] * str[i];
for(i = 0; str[i]; i++) {
if(str[i] >= 'a' && str[i] <= 'z') {
str[i] = (str[i] + s) % 128;
}
}
return str;
}
不能准确地恢复

⑤ 如何利用Mysql加密函数保护网站敏感数据

如果您正在运行使用MySQL的Web应用程序 那么它把密码或者其他敏感信息保存在应用程序里的机会就很大 保护这些数据免受黑客或者窥探者的获取是一个令人关注的重要问题 因为您既不能让未经授权的人员使用或者破坏应用程序 同时还要保证您的竞争优势 幸运的是 MySQL带有很多设计用来提供这种类型安全的加密函数 本文概述了其中的一些函数 并说明了如何使用它们 以及它们能够提供的不同级别的安全 双向加密 就让我们从最简单的加密开始 双向加密 在这里 一段数据通过一个密钥被加密 只能够由知道这个密钥的人来解密 MySQL有两个函数来支持这种类型的加密 分别叫做ENCODE()和DECODE() 下面是一个简单的实例

mysql> INSERT INTO users (username password) VALUES ( joe ENCODE( gues *** e abracadabra ));Query OK row affected ( sec)

其中 Joe的密码是gues *** e 它通过密钥abracadabra被加密 要注意的是 加密完的结果是一个二进制字符串 如下所示

mysql> SELECT * FROM users WHERE username= joe ;+ + +| username | password |+ + +| joe | ¡?i??!? |+ + + row in set ( sec)

abracadabra这个密钥对于恢复到原始的字符串至关重要 这个密钥必须被传递给DECODE()函数 以获得原始的 未加密的密码 下面就是它的使用方法

mysql> SELECT DECODE(password abracadabra ) FROM users WHERE username= joe ;+ +| DECODE(password abracadabra ) |+ +| gues *** e |+ + row in set ( sec)

应该很容易就看到它在Web应用程序里是如何运行的——在验证用户登录的时候 DECODE()会用网站专用的密钥解开保存在数据库里的密码 并和用户输入的内容进行对比 假设您把PHP用作自己的脚本语言 那么可以像下面这样进行查询

<?php$query = SELECT COUNT(*) FROM users WHERE username= $inputUser AND DECODE(password abracadabra ) = $inputPass ;?> 提示 虽然ENCODE()和DECODE()这两个函数能够满足大多数的要求 但是有的时候您希望使用强度更高的加密手段 在这种情况下 您可以使用AES_ENCRYPT()和AES_DECRYPT()函数 它们的工作方式是相同的 但是加密强度更高

单向加密 单向加密与双向加密不同 一旦数据被加密就没有办法颠倒这一过程 因此密码的验证包括对用户输入内容的重新加密 并将它与保存的密文进行比对 看是否匹配 一种简单的单向加密方式是MD 校验码 MySQL的MD ()函数会为您的数据创建一个 指纹 并将它保存起来 供验证测试使用 下面就是如何使用它的一个简单例子

mysql> INSERT INTO users (username password) VALUES ( joe MD ( gues *** e ));Query OK row affected ( sec)mysql> SELECT * FROM users WHERE username= joe ;+ + +| username | password |+ + +| joe | a e df f c e a |+ + + row in set ( sec)

现在您可以测试用户输入的内容是否与已经保存的密码匹配 方法是取得用户输入密码的MD 校验码 并将它与已经保存的密码进行比对 就像下面这样

mysql> SELECT COUNT(*) FROM users WHERE username= joe AND password=MD ( gues *** e );+ +| COUNT(*) |+ +| |+ + row in set ( sec)

或者 您考虑一下使用ENCRYPT()函数 它使用系统底层的crypt()系统调用来完成加密 这个函数有两个参数 一个是要被加密的字符串 另一个是双(或者多)字符的 salt 它然后会用salt加密字符串 这个salt然后可以被用来再次加密用户输入的内容 并将它与先前加密的字符串进行比对 下面一个例子说明了如何使用它

mysql> INSERT INTO users (username password) VALUES ( joe ENCRYPT( gues *** e ab ));Query OK row affected ( sec)mysql> SELECT * FROM users WHERE username= joe ;+ + +| username | password |+ + +| joe | ab/G gtZdMwak |+ + + row in set ( sec)

结果是

lishixin/Article/program/MySQL/201311/29366

⑥ 如何利用MySQL数据库自带加密函数进行加密

保护些数据免受黑客或者窥探者获取令关注重要问题您既能让未经授权员使用或者破坏应用程序同要保证您竞争优势幸运MySQL带设计用提供种类型安全加密函数本文概述其些函数并说明何使用及能够提供同级别安全双向加密让我简单加密始:双向加密段数据通密钥加密能够由知道密钥解密mysql两函数支持种类型加密别叫做ENCODE()DECODE()面简单实例:mysql> INSERT INTO users (username, password) VALUES ('joe', ENCODE('guessme', 'abracadabra'));
Query OK, 1 row affected (0.14 sec)其Joe密码guessme通密钥abracadabra加密要注意加密完结二进制字符串所示:mysql> SELECT * FROM users WHERE username='joe';
+----------+----------+
| username | password |
+----------+----------+
| joe | 03?i?!? |
+----------+----------+
1 row in set (0.02 sec)abracadabra密钥于恢复原始字符串至关重要密钥必须传递给DECODE()函数获原始、未加密密码面使用:mysql> SELECT DECODE(password, 'abracadabra') FROM users WHERE username='joe';+---------------------------------+
| DECODE(password, 'abracadabra') |
+---------------------------------+
| guessme |
$query = "SELECT COUNT(*) FROM users WHERE username='$inputUser' AND DECODE(password, 'abracadabra') = '$inputPass'";?>提示:虽ENCODE()DECODE()两函数能够满足数要求候您希望使用强度更高加密手段

⑦ postgresql数据加密函数使用

可以采用md5函数进行数据加密存储和校验
<pre>
create table usertable(id serial,PASSWORD text);

insert into usertable (PASSWORD) values(md5('222222'));
insert into usertable (PASSWORD) values(md5('111111'));

SELECT * from usertable where PASSWORD=md5('222222')
</pre>
更加安全的是采用加盐模式,密码相同但是结果不同
<pre>
insert into usertable(password) values (crypt('123456',gen_salt('md5')));
insert into usertable(password) values (crypt('123456',gen_salt('md5')));
SELECT * from usertable where PASSWORD=crypt('123456',password);

2 $1$LEt6lBlJ$cSucnCctkaLU2tXCLCpLk0
3 $1$tP/w8ICv$Ucx9BP9j/eWmuAtiJjbTP/
</pre>

附:函数
**crypt()
crypt(password text, salt text) returns text
Calculates a crypt(3)-style hash of password. When storing a new password, you need to use gen_salt() to generate a new salt value. To check a password, pass the stored hash value as salt, and test whether the result matches the stored value.

crypt() 函数支持的加密算法**

**gen_salt()
gen_salt(type text [, iter_count integer ]) returns text
Generates a new random salt string for use in crypt(). The salt string also tells crypt() which algorithm to use.The type parameter specifies the hashing algorithm. The accepted types are: des, xdes, md5 and bf.

⑧ 怎么用哈希函数给数据库中的密码加密

可以使用 System.Security.Cryptography 名称空间中包含的加密资源方便地生成和比较哈希值。 因为所有哈希函数的输入类型都是 Byte[],所以必须先将源数据转换为字节数组后再计算哈希值。 若要为一个字符串值创建哈希值,请按照下列步骤操作: 打开 Visual Studio .NET。 在 Microsoft C# 中新建控制台应用程序。Visual C# .NET 为您创建一个公用类以及一个空的 Main() 方法。 对 System、System.Security.Cryptography 和 System.Text 名称空间使用 using 指令,这样,在后面的代码中就不需要限定这些名称空间中的声明了。这些语句必须放在所有其他声明之前。 using System; using System.Security.Cryptography; using System.Text; 声明一个字符串变量以存放源数据,并声明两个字节数组(未定义大小)分别存放源字节和得出的哈希值。 s

⑨ MySQL函数的加密函数

a) 函数 AES_ENCRYPT(str ,key_str ) , AES_DECRYPT(crypt_str ,key_str )
函数使用说明:这些函数允许使用官方 AES 进行加密和数据加密 ( 高级加密标准 ) 算法 , 即以前人们所熟知的 “Rijndael” 。 保密关键字的长度为 128 比特,不过你可以通过改变源而将其延长到 256 比特。我们选择了 128 比特的原因是它的速度要快得多,且对于大多数用途而言这个保密程度已经够用。
b) 函数DECODE(crypt_str ,pass_str )
函数使用说明:使用 pass_str 作为密码,解密加密字符串 crypt_str , crypt_str 应该是由 ENCODE() 返回的字符串。
c) 函数 ENCODE(str ,pass_str )
函数使用说明:使用 pass_str 作为密码,解密 str 。 使用 DECODE() 解密结果。
d) 函数 DES_DECRYPT(crypt_str [,key_str ])
函数使用说明:使用 DES_ENCRYPT() 加密一个字符串。若出现错误,这个函数会返回 NULL 。
e) 函数 DES_ENCRYPT(str [,(key_num |key_str )])
函数使用说明:用 Triple-DES 算法给出的关键字加密字符串。若出现错误,这个函数会返回 NULL 。
f) 函数 ENCRYPT(str [,salt ])
函数使用说明:使用 Unix crypt() 系统调用加密 str 。 salt 参数应为一个至少包含 2 个字符的字符串。若没有给出 salt 参数,则使用任意值。
g) 函数 MD5(str )
函数使用说明:为字符串算出一个 MD5 128 比特检查和。该值以 32 位十六进制数字的二进制字符串的形式返回 , 若参数为 NULL 则会返回 NULL 。例如,返回值可被用作散列关键字
h) 函数 OLD_PASSWORD(str )
函数使用说明:当 PASSWORD() 的执行变为改善安全性时, OLD_PASSWORD() 会被添加到 MySQL 。 OLD_PASSWORD() 返回从前的 PASSWORD() 执行值 ( 4.1 之前 ) ,同时允许你为任何 4.1 之前的需要连接到你的 5.1 版本 MySQL 服务器前客户端设置密码,从而不至于将它们切断
i) 函数PASSWORD(str )
函数使用说明:从原文密码str 计算并返回密码字符串,当参数为 NULL 时返回 NULL 。这个函数用于用户授权表的Password 列中的加密MySQL 密码存储

⑩ 关于js 函数加密

<pre t="code" l="js">你可以到网上下面所用的js文件。
1、base64加密
在页面中引入base64.js文件,调用方法为:
<script type="text/javascript" src="base64.js"></script>
<script type="text/javascript">
var b = new Base64();
var str = b.encode("admin:admin");
alert("base64 encode:" + str);
str = b.decode(str);
alert("base64 decode:" + str);
</script>
2、md5加密
在页面中引用md5.js文件,调用方法为
<script type="text/ecmascript" src="md5.js"></script>
<script type="text/javascript">
var hash = hex_md5("123dafd");
alert(hash)
</script>
3、sha1加密
据说这是最安全的加密
页面中引入sha1.js,调用方法为
<script type="text/ecmascript" src="sha1.js"></script>
<script type="text/javascript">
var sha = hex_sha1('mima')
alert(sha)
</script>

热点内容
svn网络服务器搭建 发布:2025-08-20 14:42:57 浏览:13
植入脚本 发布:2025-08-20 14:37:43 浏览:580
android设置代码 发布:2025-08-20 14:19:52 浏览:245
王者荣耀哪个主播是安卓微信区的 发布:2025-08-20 14:09:08 浏览:831
虚拟机搭建游戏服务器 发布:2025-08-20 14:06:53 浏览:423
sql删除表重复的数据 发布:2025-08-20 14:04:05 浏览:866
android发展未来 发布:2025-08-20 13:58:55 浏览:569
云服务器如何搭建云电脑 发布:2025-08-20 13:31:34 浏览:182
如何在excel中设置单元格保护密码 发布:2025-08-20 13:23:57 浏览:263
脚本精灵循环 发布:2025-08-20 13:22:03 浏览:440