Windows环境下集成Google Pay执行OpenSSL命令报错:路径未找到
Windows下生成Google Pay所需公钥的解决方案
方法一:借助Git Bash(推荐)
Windows默认没有grep、sed、xxd这些Unix工具,最简单的方式是安装Git for Windows,它自带的Git Bash环境完全支持这些命令:
- 安装Git for Windows后,打开Git Bash
- 切换到
key.pem所在的目录(路径用Unix风格,比如C:\Users\rodri换成/c/Users/rodri) - 直接运行你的原命令:
openssl ec -in key.pem -pubout -text -noout 2>/dev/null | grep "pub:" -A5 | sed 1d | xxd -r -p | base64 | paste -sd "\0" -
方法二:纯PowerShell环境(无需额外工具)
如果不想安装Git Bash,可以用PowerShell完成相同操作,步骤如下:
步骤1:导出文本格式的公钥
先通过OpenSSL输出公钥的文本格式到临时文件:
openssl ec -in key.pem -pubout -text -noout > pubkey.txt 2>&1
步骤2:提取并处理公钥内容
执行以下PowerShell命令,自动提取公钥的核心字节并转为Google Pay需要的Base64格式:
# 提取pub:之后的5行内容 $pubLines = (Get-Content pubkey.txt | Select-String -Pattern "pub:" -Context 0,5).Context.PostContext # 去掉第一行,合并所有十六进制字符(去除空格和换行) $pubHex = ($pubLines | Select-Object -Skip 1) -replace "\s+", "" -join "" # 将十六进制转为字节数组 $pubBytes = [byte[]]($pubHex -split '(..)' | Where-Object { $_ -ne "" }) # 转为无换行的Base64字符串 [Convert]::ToBase64String($pubBytes) -replace "\r?\n", ""
错误原因说明
- "系统找不到指定的路径":Windows CMD不支持Unix的
/dev/null,需替换为nul,但核心问题是CMD缺少后续的Unix工具链 - "'xxd' 不是内部或外部命令":
xxd是Unix系统自带的工具,Windows默认没有,因此要么安装工具集,要么用PowerShell的内置功能替代
内容的提问来源于stack exchange,提问作者pomoworko.com
相关产品推荐
相关产品推荐

