sha1在线加密加密处理中文时在js和php中不一样怎么办!如何处理!!!

js和php的问题_百度知道
js和php的问题
大神赐教?php做前台有什么缺点!,那为什么很多网站前台都用js呢既然php可以做前台!?
提问者采纳
浏览器是能解析一些标记性语言(html),这是js办不到的、处理、分析楼主有一个误区、视频,也不该是php该干的活而数据的统计,以及一些客户端脚本(javascript)说白了、2种作用,js和php本身就是在两个不同的地方运行的!他们差不多可以理解为2种领域,也不该是js干的活,压根就没有可比性!展示图片,这是php办不到的,以及一些网页特效,php并不是说可以做前台php永远都是服务器端脚本他的作用只是提供逻辑功能并且能根据需要将逻辑处理后生成html源发送给浏览器进行展示
提问者评价
来自团队:
其他类似问题
为您推荐:
其他3条回答
s浏览器解析比较简单,js框架功能就更强大了,而且js中有许多特效,作前台需要解析成html。 php是脚本语言,比如dojo等,起码效率低,再说功能也不够强大
PHP-------服务器,数据库,逻辑。JS----------浏览器,前端,页面。
php文件得在Apach的WWW目录下才能被服务器解析,PHP做前台怎么可能有优势,css,js,jquery这些高级特效是php达不到,php当然是后台用来进行逻辑操作的语言。
您可能关注的推广
php的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁关于Latin1编码在JS和php端不一致问题
[问题点数:20分,结帖人u]
关于Latin1编码在JS和php端不一致问题
[问题点数:20分,结帖人u]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。那天在调试API的时候,发现用c#写的SHA1加密出来的结果和PHP中sha1()出来的不一样,找了半天的原因后来才弄出来在调试微信接口的时候大多的帮助文档都是提供的是PHP的方法,所以在.net中实现的时候会出现很多的问题,最典型的就是token通不过验证现在提供一个结果与Php一样 的SHA1方法
public static string Sha1Sign(string data)
byte[] temp1 = Encoding.UTF8.GetBytes(data);
SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
byte[] temp2 = puteHash(temp1);
sha.Clear();
// 注意, 不能用这个
// string output = Convert.ToBase64String(temp2);// 不能直接转换成base64string
var output = BitConverter.ToString(temp2);
output = output.Replace("-", "");
output = output.ToLower();
}&解决方式:在php中sha1出来的是小写字母,可是在c#中默认出来的是大写,在token验证的时候也是区分大小写的,另外很多人在
// string output = Convert.ToBase64String(temp2);// 不能直接转换成base64string
var output = BitConverter.ToString(temp2);  这里犯了错误却一直没有发现,所以找了很久的原因&&PS:在送上一个Php的base64_encode的c#实现
public static string Base64_encode(string data)
return Convert.ToBase64String(Encoding.UTF8.GetBytes(data));
、 、 、 、 、PHP安全编程之加密功能_中文
Site Message:
当前位置: >>
PHP安全编程之加密功能
Post Time:
Poster:Colin
数据加密在我们生活中的地位已经越来越重要了,尤其是考虑到在网络上发生的大量交易和传输的大量数据。如果对于采用安全措施有兴趣的话,也一定会有兴趣了解PHP提供的一系列安全功能。在本篇文章中,我们将介绍这些功能,提供一些基本的用法,以便你能够为自己的应用软件中增加安全功能。
  预备知识
  在详细介绍PHP的安全功能之前,我们需要花点时间来向没有接触过这方
面内容的读者介绍一些有关密码学的基本知识,如果对密码学的基本概念已经非常熟悉,就可以跳过去这一部分。
  密码学可以通俗地被描述为对加/解密的研究和实验,加密是将易懂的资料转换为不易懂资料的过程,解密则是将不易懂的资料转换为原来易懂资料的过程。不易懂的资料被称作密码,易懂的资料被称作明码。
  数据的加/解密都需要一定的算法,这些算法可以非常地简单,如著名的凯撒码,但当前的加密算法要相对复杂得多,其中一些利用现有的方法甚至是无法破译的。
  PHP的加密功能
  只要有一点使用非Windows平台经验的人可能对crypt()也相当熟悉,这一函数完成被称作单向加密的功能,它可以加密一些明码,但不能够将密码转换为原来的明码。尽管从表面上来看这似乎是一个没有什么用处的功能,但它的确被广泛用来保证系统密码的完整性。因为,单向加密的口令一旦落入第三方人的手里,由于不能被还原为明文,因此也没有什么大用处。在验证用户输入的口令时,用户的输入采用的也是单向算法,如果输入与存储的经加密后的口令相匹配,则输入的口信一定是正确的。
  PHP同样提供了使用其crypt()函数完成单向加密功能的可能性。我将在这里简要地介绍该函数:
string crypt (string input_string [, string salt])
  其中的input_string参数是需要加密的字符串,第二个可选的salt是一个位字串,它能够影响加密的暗码,进一步地排除被称作预计算攻击的可能性。缺省情况下,PHP使用一个2个字符的DES干扰串,如果你的系统使用的是MD5(我将在以后介绍MD5算法),它会使用一个12个字符的干扰串。顺便说一下,可以通过执行下面的命令发现系统将要使用的干扰串的长度:
print &My system salt size is: &. CRYPT_SALT_LENGTH;
  系统也可能支持其他的加密算法。crypt()支持四种算法,下面是它支持的算法和相应的salt参数的长度:
算法 Salt长度
CRYPT_STD_DES 2-character (Default)
CRYPT_EXT_DES 9-character
CRYPT_MD5 12-character beginning with 102/td&
CRYPT_BLOWFISH 16-character beginning with 102/td&
  用crypt()实现用户身份验证
  作为crypt()函数的一个例子,考虑这样一种情况,你希望创建一段PHP脚本程序限制对一个目录的访问,只允许能够提供正确的用户名和口令的用户访问这一目录。我将把资料存储在我喜欢的数据库MySQL的一个表中。下面我们以创建这个被称作members的表开始我们的例子:
mysql&CREATE TABLE members (
-&username CHAR(14) NOT NULL,
-&password CHAR(32) NOT NULL,
-&PRIMARY KEY(username)
  然后,我们假定下面的数据已经存储在该表中:
用户名 密码
clark keloD1C377lKE
bruce ba1T7vnz9AWgk
peter paLUvRWsRLZ4U
  这些加密的口令对应的明码分别是kent、banner和parker。注意一下每个口令的前二个字母,这是因为我使用了下面的代码,根据口令的前二个字母创建干扰串的:
= &This is some message that I just wrote&;
print &hash: &;
  结果:
hash: 81eab5ba375e81d8f4972c
  注意,结果的长度为32个字符。再来看一下下面的表,其中的的值有了一点微小的变化:
使用md5()对一个稍微变化的字符串进行混编
//注意,message中少了一个s
= &This is some mesage that I just wrote&;
print &hash2: &br /&&br /&&;
  结果:
hash2: e86cf511bdcdc
  可以发现,尽管二个结果的长度都是32个字符,但明文中一点微小的变化使得结果发生了很大的变化,因此,混编和md5()函数是检查数据中微小变化的一个很好的工具。
  尽管crypt()和md5()各有用处,但二者在功能上都受到一定的限制。在下面的部分中,我们将介绍二个非常有用的被称作Mcrypt和Mhash的PHP扩展,将大大拓展PHP用户在加密方面的选择。
  尽管我们在上面的小节中说明了单向加密的重要性,但有时我们可能需要在加密后,再把密码数据还原成原来的数据,幸运的是,PHP通过Mcrypt扩展库的形式提供了这种可能性。
  Mcrypt
Mcrypt 2.5.7 Unix | Win32
  Mcrypt 2.4.7是一个功能强大的加密算法扩展库,它包括有22种算法,其中就包括下面的几种算法:
Blowfish RC2 Safer-sk64 xtea
Cast-256 RC4 Safer-sk128
DES RC4-iv Serpent
Enigma Rijndael-128 Threeway
Gost Rijndael-192 TripleDES
LOKI97 Rijndael-256 Twofish
PanamaSaferplus Wake
  安装:
  在标准的PHP软件包中不包括Mcrypt,因此需要下载它,下载的地址为:ftp://argeas.cs-net.gr/pub/unix/mcrypt/。下载后,按照下面的方法进行编译,并把它扩充在PHP中:
下载Mcrypt软件包。
gunzipmcrypt-x.x.x.tar.gz
tar -xvfmcrypt-x.x.x.tar
./configure --disable-posix-threads
make install
cd to your PHP directory.
./configure -with-mcrypt=[dir] [--other-configuration-directives]
make install
  当然了,根据你的要求和PHP安装时与互联网服务器软件的关系,上面的过程可能需要作适当的修改。
  使用Mcrypt
  Mcrypt的优点不仅仅在于其提供的加密算法较多,还在于它可以对数据进行加/解密处理,此外,它还提供了35种处理数据用的函数。尽管对这些函数进行详细介绍已经超出了这篇文章的范围,我还是要就几个典型的函数作一下简要的介绍。
  首先,我将介绍如何使用Mcrypt扩展库对数据进行加密,然后再介绍如何使用它进行解密。下面的代码对这一过程进行了演示,首先是对数据进行加密,然后在浏览器上显示加密后的数据,并将加密后的数据还原为原来的字符串,将它显示在浏览器上。
使用Mcrypt对数据进行加、解密
// Designate string to be encrypted
= &Applied Cryptography, by Bruce Schneier, is
a wonderful cryptography reference.&;
// Encryption/decryption key
key = &Four score and twenty years ago&;
// Encryption Algorithm
= MCRYPT_RIJNDAEL_128;
// Create the initialization vector for added security.
= mcrypt_create_iv(mcrypt_get_iv_size(,
MCRYPT_MODE_ECB), MCRYPT_RAND);
// Output original string
print &Original string: &p&&;
// Encrypt
= mcrypt_encrypt(, key,
, MCRYPT_MODE_CBC, );
// Convert to hexadecimal and output to browser
print &Encrypted string: &.bin2hex().&&p&&;
= mcrypt_decrypt(, key,
, MCRYPT_MODE_CBC, );
print &Decrypted string: &;
执行上面的脚本将会产生下面的输出:
Original string: Applied Cryptography, by Bruce Schneier, is a wonderful cryptography reference.
Encrypted string: 02a7c58b1ebd22ab091e60411cc4dea 34fa06bbfb20e71ecf525f29df58e28f3d9bf541f7ebcecf62b c89fde4d8e7ba1e6cc9ea42f5cfa1d23fe22fe8 bfbab5e
Decrypted string: Applied Cryptography, by Bruce Schneier, is a wonderful cryptography reference.
  上面的代码中二个最典型的函数是mcrypt_encrypt()和mcrypt_decrypt(),它们的用途是显而易见的。我使用了“电报密码本”模式,Mcrypt提供了几种加密方式,由于每种加密方式都有可以影响密码安全的特定字符,因此每种模式都需要了解。对于没有接触过密码系统的读者来说,可能对mcrypt_create_iv()函数更有兴趣,尽管对这一函数进行彻底的解释已经超出了本篇文章的范围,但我仍然会提到它创建的初始化向量(hence, iv),这一向量可以使每条信息彼此独立。尽管不是所有的模式都需要这一初始化变量,但如果在要求的模式中没有提供这一变量,PHP就会给出警告信息。
  Mhash扩展库
http://sourceforge.net/projects/mhash/
  0.8.3版的Mhash扩展库支持12种混编算法,仔细检查Mhash v.0.8.3的头文件mhash.h可以知道,它支持下面的混编算法:
CRC32 HAVAL160 MD5
CRC32B HAVAL192 RIPEMD160
GOST HAVAL224 SHA1
HAVAL128 HAVAL256 TIGER
  象Mcrypt一样,Mhash也没有包括在PHP软件包中,对于非Windows用户而言,下面是安装过程:
下载Mhash扩展库
gunzipmhash-x.x.x.tar.gz
tar -xvfmhash-x.x.x.tar
./configure
make install
cd &PHP所在的目录&
./configure -with-mhash=[dir] [--other-configuration-directives]
make install
  象Mcrypt一样,根据PHP在互联网服务器软件上的安装方式,可能需要对Mhash进行其他的配置。
  对于Windows用户而言,http://www.php4win.de中有一个很好的包括Mhash扩展库在内的PHP软件包。只要下载并进行解压缩,然后根据其中的readme.first文档中的指令进行安装即可。
  对信息进行混编非常简单,看一下下面的例子:
= MHASH_TIGER;
= &These are the directions to the secret fort. Two steps left, three steps right, and cha chacha.&;
= mhash(, );
print &The hashed message is &. bin2hex();
  执行这一段脚本程序将得到下面的输出结果:
The hashed message is 07a92a4db3a34aea9fbb4ade461
在这里使用bin2hex()函数的目的是方便我们理解的输出,这是因为混编的结果是二进制格式,为了能够将它转化为易于理解的格式,必须将它转换为十六进制格式。
  需要注意的是,混编是单向功能,其结果不依赖输入,因此可以公开显示这一信息。这一策略通常用于让用户比较下载文件和系统管理员提供的文件,以确保文件的完整性。
Mhash还有其他一些有用的函数。例如,我需要输出一个Mhash支持的算法的名字,由于Mhash支持的所有算法的名字都以MHASH_开头,因此,可以通过执行如下的代码完成这一任务:
= MHASH_TIGER;
print &This data has been hashed with the&.mhash_get_hash_name().&hashing algorithm.&;
得到的输出是:
This data has been hashed with the TIGER hashing algorithm.
  关于PHP和加密最后需要注意的一个问题
  关于PHP和加密需要注意的最后的一个重要问题是在服务器和客户端之间传输的数据在传输过程中是不安全的!PHP是一种服务器端技术,不能阻止数据在传输过程中泄密。因此,如果想实现一个完整的安全应用,建议选用Apache-SSL或其他的安全服务器布置。
  这篇文章介绍了PHP最有用的功能之一━━数据加密,不仅讨论了PHP内置的crypt() 和md5()加密函数,还讨论了用于数据加密的功能强大的扩展库━━Mcrypt和Mhash。在这篇文章最后,我需要指出的是,一个真正安全的PHP应用还应该包括安全的服务器,由于PHP是一种服务器端的技术,因此,在数据由客户端向服务器端进行传输时,它不能保证数据的安全。
Powered by关于php, html,js 和css做网站的问题_百度知道
关于php, html,js 和css做网站的问题
本人会html css js做静态网站,最近准备着手动态网站。问题1:不过下载的源码和wordpress模板全是.php文件的
打开后也没看见任何html代码。。我想问的是,是不是php类似于js这样的脚本语言。我自己下载的源码也只不过给的CMS的纯php的代码,不包含前台客户端的html css 和js珐场粹渡诔盗达醛惮互的代码。是不是下载站点下载php源码不会给你包含前台的代码呢
问题2:用php做动态网站,是不是相当于要用html css js这些把静态的前台做好了,再用php做后台的文件,然后加入进html的页面吗(类似css+js),还是php和html css js 分开各自玩儿各自的呢?
补充一下: 其实就是想知道,html和php是不是在服务器上是分开存放的 不珐场粹渡诔盗达醛惮互在一个目录下?
还有下面的回答都没有告诉我wordpress模板里面 为什么找不到html代码呢
提问者采纳
php文件需要专门解析php文件的软件 安装后就可以解析php文件& html文件用浏览器就可以解析。&&&html代码中可以嵌入 php& js css&& 珐场粹渡诔盗达醛惮互代码& 生成动态的交互的网页& 只不过嵌入php代码之后需要把文件的后缀名改为.php。php解析器 在解析的过程中 会把php代码解析成html代码,解析后的html代码与夹杂在页面中的html代码会传给浏览器解析 &所以你查看网页源代码是不会看到php代码的php想学好不容易&& 因为它与html css js 产生很多联系& 不过html css js也不容易学&
提问者评价
来自团队:
其他类似问题
为您推荐:
其他2条回答
html 是网页基础语言 然后css样式js客户端脚本语言
php也是一种脚本语言 想你说的cms比较有名是的织梦和帝国,
你看到php语言 你不用改
你只要把你的静态文件放到他们制定的模板,然后cms里面有固定的标签, 你把标签粘到你的html语言中
就可以通过cms的后台程序 修改你的前台的文件了 , 珐场粹渡诔盗达醛惮互你前台调用的是你后台添加的信息。
学习步骤 你先学dedecms吧
保证你一星期学会
你先去看视频教程 看两集然后去他官网 1星期学会
第一,可以用dreamweaver打开.php文件就可以看到源代码和设计页面。php是(PHP: Hypertext Preprocessor的缩写,中文名:“超文本预处理器”)是一种通用开源脚本语言。第二,可以使用php,html,css,js共同写一个页面,就是动态页面。想着手动态网站可以看看资料视频什么的,网上也有很多开源的资料。
做网站的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 sha1加密 的文章

 

随机推荐