支付宝RASoffice2007密钥生成器器SHAwithRSA1024_V1.0.bat运行失败、一闪关闭

支付宝RAS密钥生成器SHAwithRSA打不开怎么回事?-学路网-学习路上 有我相伴
支付宝RAS密钥生成器SHAwithRSA打不开怎么回事?
来源:互联网 &责任编辑:小易 &
网友碰到这么一个问题:支付宝RAS密钥生成器SHAwithRSA打不开怎么回事?,具体如下:打开一闪而过!系统通过互联网整理(主要来自百度知道、sogou问问、知乎、360问答等平台)获得以下解决方法,供碰到同样问题的网友参考:答:操作步骤 (1)下载开发指南和集成资料 登录支付宝,点击 我的商家服务-&手机无线收款-&快捷支付(无线) (2)解压下载的压缩包(WS_SECURE_PAY),找到并解压 openssl-0.9.8k_WIN32(RSA 密钥生成工具).zip 工具包 (3)生成原始RSA商户私钥文件 ...答:签约成功后,支付宝官方客服会给对应人公钥。 附注: 商户公钥签约流程:1签约前的资料准备2.选择适合自己的产品3.审核4.技术集成。 支付宝密钥和商户ID就是支付宝数字证书的加密码,为了保证安全而设置的。 答:AES和RSA都是加密算法 AES属于对称加密算法 RSA属于非对称加密算法,公钥和私钥不一致 MD5是一种校验方式,用于保证文件的正确性,防止被植入木马或病毒答:你好,PHP对RSA加密没有原生支持,需要打开openssl扩展,而且还得知道服务器的证书格式,之类的参数,不然没法对上签名,PHP的RAS加密解密代码支付宝的SDK里面有,例子可以参考。再找关于RSA加密的资料,看完你就明白流程了,如果你要跟java的jk...
本文相关:
- Copyright & 2018 www.xue63.com All Rights Reserved&>&支付宝密钥生成器
支付宝密钥生成器
上传大小:2.37MB
支付宝密钥的生成以及使用
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
综合评分:
积分/C币:5
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
支付宝密钥生成器
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
ldtruelove
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
支付宝密钥生成器RSA生成、上传,PID、APPID查看小贴士
作者:Natalie& | &更新于: 14:15:03
本文包含RSA公私钥生成、商户公钥的上传和查看PID、APPID的方法。
RSA公私钥的生成方式生成方式一(推荐):使用支付宝提供的一键生成工具(内附使用说明)Windwos:MAC OSX:解压打开文件夹,直接运行“支付宝RAS密钥生成器SHAwithRSA.bat”(WINDOWS)或“SHAwithRSA.command”(MACOSX),点击“生成RSA密钥”,会自动生成公私钥,然后点击“打开文件位置”,即可找到工具自动生成的密钥。
生成方式二:也可以使用命令生成
首先进入OpenSSL工具,再输入以下命令。
OpenSSL& genrsa -out rsa_private_key.pem & 1024 &#生成私钥
OpenSSL& pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem #Java开发者需要将私钥转换成PKCS8格式
OpenSSL& rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem #生成公钥
OpenSSL& exit #退出OpenSSL程序
经过以上步骤,开发者可以在当前文件夹中(OpenSSL运行文件夹),看到rsa_private_key.pem(RSA私钥)、rsa_private_key_pkcs8.pem(pkcs8格式RSA私钥)和rsa_public_key.pem(对应RSA公钥)3个文件。开发者将私钥保留,将公钥提交给支付宝网关,用于验证签名。以下为私钥文件和公钥文件示例。
注意:对于使用Java的开发者,将pkcs8在console中输出的私钥去除头尾、换行和空格,作为开发者私钥,对于.NET和PHP的开发者来说,无需进行pkcs8命令行操作。
商户公钥上传、PID查看开发者登录支付宝开放平台【】
如果是第一次上传公钥,点击“设置”按钮如果已经上传过公钥,点击“查看开发者公钥”按钮
商户应用公钥配置、APPID查看
在上述页面中点击开放平台密钥,可以看到您在开放平台所创建的所有应用。 为您正在开发的应用上传商户公钥,账号下的所有应用可以设置为统一的密钥,但为了安全考虑,建议不同的应用配置不同的密钥。
根据步骤会弹出一个需要填写的框,打开使用openssl生成的商户公钥文件,
需去除头尾、换行和空格,仅需填入字符串。
支付宝公钥
在上传了商户公钥后,右边会多出一个查看支付宝公钥,点击查看。
若需要读文件格式则需要放在一个PEM文件格式中如下
PEM格式化后的支付宝公钥:
好贴,赞一个
好贴共分享
顶顶顶顶顶顶顶顶
这帖子写的666
我多次生成提交rsa公钥,对应的支付宝公钥一直不变, 现在不对了,这个怎么办,之前不懂,现在懂了就不行了
testtesttestsettestes
dddddddddddd
dddddddddddddddddd
dddddddddddddddddddddd
testtesttest
您需要登录后才可以回帖,
Copyright (C) 2017 杭州蚂蚁金服 | ICP证浙B2-支付宝秘钥生成器,生成秘钥失败的原因与解决方案
Windows下载工具地址:
MAC OSX下载:
从支付宝网址下载RAS密钥生成器:secret_key_tools_RSA_win,然后解压双击运行SHAwithRSA.bat文件,发现会一闪而过,无法运行bat文件。
解决办法:
解压的文件目录含有中文,需要将目录放到C盘、D盘等根目录,这样不会出现中文目录即可。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!博客分类:
这个功能网上搜了好多资料。贡献一下,转载须注明并对卓二妹的无私奉献表示感谢。
1)签名算法使用SHA1withRSA。
2)签名后的数据位base64编码的密文字符串。
3)三个环境进行签名的私钥的格式不同,需要openssl工具进行转换。
——————————————————————————————————————————
JAVA签名:
1)从包含公私钥的pfx证书中取得.key私钥:
F:\openssl-0.9.8k_WIN32\bin&openssl pkcs12 -in f:\certs\zhuo.pfx -out f:\certs\zhuo.pem
Enter Import Password:(输入导出时的密码)
MAC verified OK
Enter PEM pass phrase:(长度至少为4位的pem证书密码)
Verifying - Enter PEM pass phrase:(确认一次pem证书密码)
F:\openssl-0.9.8k_WIN32\bin&openssl pkcs8 -topk8 -inform PEM -outform DER -in f:\certs\zhuo.pem -out f:\certs\zhuo_der.key -nocrypt
Enter pass phrase for f:\certs\zhuo.pem:(输入pem证书密码)
该步骤生成的.key文件即为JAVA签名所需私钥文件。
2)生成公钥:直接从IE中导出X.509格式二进制编码的cer为后缀的公钥证书即可。
3)签名验签:
* 函数功能说明: 签名数据
* created by zhuoyueping
* modified by zhuoyueping
* 修改内容说明:
* @param @param content:签名原文
* @param @param keyfile:私钥文件.key路径
* @param @return
* @param @throws Exception
* @return String :base64签名
public String sign(String content, String keyfile) throws Exception {
File file = new File(keyfile); //keyfile key文件的地址
FileInputS
in = new FileInputStream(file);
ByteArrayOutputStream bout = new ByteArrayOutputStream();
byte[] tmpbuf = new byte[1024];
int count = 0;
while ((count = in.read(tmpbuf)) != -1) {
bout.write(tmpbuf, 0, count);
tmpbuf = new byte[1024];
in.close();
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(bout
.toByteArray());
RSAPrivateKey privateKey = (RSAPrivateKey) keyFactory
.generatePrivate(privateKeySpec);
Signature dsa = Signature.getInstance("SHA1withRSA"); //采用SHA1withRSA加密
dsa.initSign(privateKey);
dsa.update(content.getBytes("UTF-8")); //voucher需要加密的String必须变成byte类型的
byte[] sig = dsa.sign();
String rtnValue = new String(Base64.encode(sig));
return rtnV
* 验证签名
* @param data 原文字节
* @param sign 数据签名[BASE64]
* @param certificatePath 证书存储路径
* @throws Exception
public static boolean verifySign(byte[] data, String sign,
String certificatePath) throws Exception {
// 获得证书
X509Certificate x509Certificate = (X509Certificate) getCertificate(certificatePath);
return verifySign(data,sign,x509Certificate);
private static boolean verifySign(byte[] data, String sign, X509Certificate x509Certificate)throws Exception {
PublicKey publicKey = x509Certificate.getPublicKey();
Signature signature = Signature.getInstance(x509Certificate
.getSigAlgName());
signature.initVerify(publicKey);
signature.update(data);
return signature.verify(Base64.decode(sign.getBytes()));
1)从包含公私钥的pfx证书中取得.key私钥:
F:\openssl-0.9.8k_WIN32\bin& openssl rsa -in d:\\certs\\zhuo.pfx -nocerts -nodes -out d:\\certs\\zhuo.key
该步骤生成的.key文件即为C#签名所需私钥文件。
2)公钥生成:于java方式相同,都是二进制格式的x509证书3)签名及验签:
using System.T
using System.Security.C
using System.W
using System.IO;
using System.Security.Cryptography.X509C
namespace Safe
public class SafeUtil
/// &summary&
/// 验证签名
/// &/summary&
/// &param name="OriginalString"&原文:UTF8编码&/param&
/// &param name="SignatureString"&签名:base64编码的字节&/param&
/// &param name="publicKeyPath"&公钥路径&/param&
/// &returns& 验签结果&/returns&
public bool Verify(String OriginalString, String SignatureString,String publicKeyPath)
//将base64签名数据转码为字节
byte[] signedBase64 = Convert.FromBase64String(SignatureString);
byte[] orgin = Encoding.UTF8.GetBytes(OriginalString);
X509Certificate2 x509_Cer1 = new X509Certificate2(publicKeyPath);
RSACryptoServiceProvider oRSA = new RSACryptoServiceProvider();
oRSA.FromXmlString(x509_Cer1.PublicKey.Key.ToXmlString(false));
bool bVerify = oRSA.VerifyData(orgin, "SHA1", signedBase64);
/// &summary&
/// 验证签名
/// &/summary&
/// &param name="data"&原文:UTF8编码&/param&
/// &param name="privateKeyPath"&证书路径:D:/certs/mycert.key&/param&
/// &returns& 验签&/returns&
public string Sign(string data, string privateKeyPath)
RSACryptoServiceProvider rsaCsp = LoadCertificateFile(privateKeyPath);
byte[] dataBytes = Encoding.UTF8.GetBytes(data);
byte[] signatureBytes = rsaCsp.SignData(dataBytes, "SHA1");
return Convert.ToBase64String(signatureBytes);
byte[] GetPem(string type, byte[] data)
string pem = Encoding.UTF8.GetString(data);
string header = String.Format("-----BEGIN {0}-----", type);
string footer = String.Format("-----END {0}-----", type);
int start = pem.IndexOf(header) + header.L
int end = pem.IndexOf(footer, start);
string base64 = pem.Substring(start, (end - start));
return Convert.FromBase64String(base64);
RSACryptoServiceProvider LoadCertificateFile(string filename)
using (System.IO.FileStream fs = System.IO.File.OpenRead(filename))
byte[] data = new byte[fs.Length];
byte[] res =
fs.Read(data, 0, data.Length);
if (data[0] != 0x30)
res = GetPem("RSA PRIVATE KEY", data);
RSACryptoServiceProvider rsa = DecodeRSAPrivateKey(res);
catch (Exception ex)
RSACryptoServiceProvider DecodeRSAPrivateKey(byte[] privkey)
byte[] MODULUS, E, D, P, Q, DP, DQ, IQ;
// --------- Set up stream to decode the asn.1 encoded RSA private key ------
MemoryStream mem = new MemoryStream(privkey);
BinaryReader binr = new BinaryReader(mem);
//wrap Memory Stream with BinaryReader for easy reading
byte bt = 0;
ushort twobytes = 0;
int elems = 0;
twobytes = binr.ReadUInt16();
if (twobytes == 0x8130) //data read as little endian order (actual data order for Sequence is 30 81)
binr.ReadByte();
//advance 1 byte
else if (twobytes == 0x8230)
binr.ReadInt16();
//advance 2 bytes
twobytes = binr.ReadUInt16();
if (twobytes != 0x0102) //version number
bt = binr.ReadByte();
if (bt != 0x00)
//------ all private key components are Integer sequences ----
elems = GetIntegerSize(binr);
MODULUS = binr.ReadBytes(elems);
elems = GetIntegerSize(binr);
E = binr.ReadBytes(elems);
elems = GetIntegerSize(binr);
D = binr.ReadBytes(elems);
elems = GetIntegerSize(binr);
P = binr.ReadBytes(elems);
elems = GetIntegerSize(binr);
Q = binr.ReadBytes(elems);
elems = GetIntegerSize(binr);
DP = binr.ReadBytes(elems);
elems = GetIntegerSize(binr);
DQ = binr.ReadBytes(elems);
elems = GetIntegerSize(binr);
IQ = binr.ReadBytes(elems);
// ------- create RSACryptoServiceProvider instance and initialize with public key -----
CspParameters CspParameters = new CspParameters();
CspParameters.Flags = CspProviderFlags.UseMachineKeyS
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(1024, CspParameters);
RSAParameters RSAparams = new RSAParameters();
RSAparams.Modulus = MODULUS;
RSAparams.Exponent = E;
RSAparams.D = D;
RSAparams.P = P;
RSAparams.Q = Q;
RSAparams.DP = DP;
RSAparams.DQ = DQ;
RSAparams.InverseQ = IQ;
RSA.ImportParameters(RSAparams);
return RSA;
catch (Exception ex)
binr.Close();
int GetIntegerSize(BinaryReader binr)
byte bt = 0;
byte lowbyte = 0x00;
byte highbyte = 0x00;
int count = 0;
bt = binr.ReadByte();
if (bt != 0x02)
//expect integer
bt = binr.ReadByte();
if (bt == 0x81)
count = binr.ReadByte();
// data size in next byte
if (bt == 0x82)
highbyte = binr.ReadByte(); // data size in next 2 bytes
lowbyte = binr.ReadByte();
byte[] modint = { lowbyte, highbyte, 0x00, 0x00 };
count = BitConverter.ToInt32(modint, 0);
// we already have the data size
while (binr.ReadByte() == 0x00)
//remove high order zeros in data
count -= 1;
binr.BaseStream.Seek(-1, SeekOrigin.Current);
//last ReadByte wasn't a removed zero, so back up a byte
1)从包含公私钥的pfx证书中取得.key私钥:于C#的证书一致
2)公钥生成:
F:\openssl-0.9.8k_WIN32\bin&openssl pkcs12 -in f:\certs\zhuo.pfx -out f:\certs\zhuo.pem
3)签名及验签:
签名数据:
data:utf-8编码的订单原文,
privatekeyFile:私钥路径
passphrase:私钥密码
返回:base64转码的签名数据
function sign($data, $privatekeyFile,$passphrase)
$signature = '';
$privatekey = openssl_pkey_get_private(file_get_contents($privatekeyFile), $passphrase);
$res=openssl_get_privatekey($privatekey);
openssl_sign($data, $signature, $res);
openssl_free_key($res);
return base64_encode($signature);
验证签名:
data:原文
signature:签名
publicKeyPath:公钥路径
返回:签名结果,true为验签成功,false为验签失败
function verity($data, $signature, $publicKeyPath)
$pubKey = file_get_contents('D:/certs/test.pem');
$res = openssl_get_publickey($pubKey);
$result = (bool)openssl_verify($data, base64_decode($signature), $res);
openssl_free_key($res);
* PHP需要注意版本和一些包的导入,如果有报错再google了~~
浏览 16905
silly_sinba
浏览: 86470 次
来自: 成都
weijiewell 写道kanzhun网缔造者之一,静静着看 ...
kanzhun网缔造者之一,静静着看着你捣乱。
[color=orange][/color]:!:
:c4564ry:456
运行效果图呢?
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 支付宝ras密钥生成器 的文章

 

随机推荐