资讯专栏INFORMATION COLUMN

登陆认证、web api接口调用、支付接口调用等场合经常涉及到:md5、sh、 rsa等算法

Charles / 526人阅读

摘要:简介地址实际项目中的登陆认证接口调用支付接口调用等场合经常涉及到等算法。各大银行接口中经常使用算法对调用接口参数进行签名防篡改。使用端见端见特点便于理解,使用广泛。这就使加密的计算量很大。对方收到信息后,用不同的密钥解密并可核对信息摘要。

PHP-RSA
简介

github 地址 https://github.com/lmxdawn/PH...

实际项目中的登陆认证、web api接口调用、支付接口调用等场合经常涉及到:md5、sh、 rsa等算法。
各大银行接口中经常使用MD5算法对调用接口参数进行签名防篡改。

如果你和我有同样的问题 :

web api调用认证中,客户端和服务端通过相同的公钥对提交参数进行MD5加密,进行验证。但
2014年中国山东大学的王小云教授公布破译了MD5、HAVAL-128、 MD4和RIPEMD算法的报告。通过加
速的杂凑与冲撞方法破译了MD5算法,MD5还安全吗?

RSA定义:

RSA为公钥加密体制:

A.乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。

B.甲方获取乙方的公钥,然后用它对信息加密。

C.乙方得到加密后的信息,用私钥解密。

RSA使用:

web 端 见 test_rsa.html
php 端 见 test_rsa.php

RSA特点:
A.便于理解,使用广泛。

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验, 逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

B.缺点与不足:

加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。 为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式, 即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。 对方收到信息后,用不同的密钥解密并可核对信息摘要。

需要原型工具:

OpenSSL下载地址:http://slproweb.com/products/...

安装OpenSSL
    随意安装到哪里

点击OpenSLL的bin目录下的 openssl.exe 进行私钥和公钥的生成
    生成私钥
    genrsa -out rsa_private_key.pem 1024
    生成公钥
    rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

将生产的私钥、公钥拷贝到你的PHP项目中

开启PHP的OpenSSL扩展

将php.ini中的extension=php_openssl.dll开启(去掉;)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22206.html

相关文章

  • 登陆认证web api接口调用支付接口调用场合经常涉及md5shrsa算法

    摘要:简介地址实际项目中的登陆认证接口调用支付接口调用等场合经常涉及到等算法。各大银行接口中经常使用算法对调用接口参数进行签名防篡改。使用端见端见特点便于理解,使用广泛。这就使加密的计算量很大。对方收到信息后,用不同的密钥解密并可核对信息摘要。 PHP-RSA简介 github 地址 https://github.com/lmxdawn/PH... 实际项目中的登陆认证、web api接口调...

    Bryan 评论0 收藏0
  • 登陆认证web api接口调用支付接口调用场合经常涉及md5shrsa算法

    摘要:简介地址实际项目中的登陆认证接口调用支付接口调用等场合经常涉及到等算法。各大银行接口中经常使用算法对调用接口参数进行签名防篡改。使用端见端见特点便于理解,使用广泛。这就使加密的计算量很大。对方收到信息后,用不同的密钥解密并可核对信息摘要。 PHP-RSA简介 github 地址 https://github.com/lmxdawn/PH... 实际项目中的登陆认证、web api接口调...

    Half 评论0 收藏0
  • PHP面试题

    摘要:质量高在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。代码块捕获异常,并创建一个包含异常信息的对象。这样可以解决超卖的问题,但是会导致文件得开销很大。 6.你们公司是使用什么框架? 答:我们公司采用的是TP框架,运用的mysql+apache+php进行开发,因为TP框架是一个免费开源的,轻量级的php开发框架,而且是我们中国人自己开发的,...

    ls0609 评论0 收藏0
  • 回眸曾经的项目,与第三方支付相关,所带来的沟通问题

    摘要:钱可以存储在自己的余额中,这就相当于微信钱包,余额可以提现到银行卡的中。我们的第三方支付平台是连连支付,杭州的一家公司。私钥怎么加签每个公司的加签方式是不一样的,支付宝有支付宝的加签方式,微信有微信的加签方式。 导读 笔者在校期间,通过自学java。学校里也开过这门课,但是,讲的都是一些基础,比如java的表达式、基本类型、自定义类型等等。也都是很基础的东西,就连lambda表达式都没...

    kaka 评论0 收藏0
  • 支付与签名原串的那些事,但选择排序生成签名原串

    摘要:工商银行中国工商银行提现支付域名项目名接口我们第一次使用支付请求对象,是为了将其生成签名原串。第一次加密是将不包含属性值的支付请求对象封装的签名原串和我们生成的私钥共同加密成签名字符串,放进支付请求对象中的属性中。 引题 【备注】签名原串的源码放在git上了,请大家参看:项目源码 笔者最近在做支付、调用天猫优惠券、绑定银行卡相关的业务,在这些业务中,我们都需要将数据加密。然而,数据的加...

    DC_er 评论0 收藏0

发表评论

0条评论

Charles

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<