You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Xamarin生成Facebook登录Keystore哈希遇CMD错误求助

解决Keystore哈希生成命令的PowerShell/CMD语法错误

错误原因

你遇到的报错是PowerShell专属的语法错误,说明你实际是在PowerShell窗口中执行了针对CMD编写的命令——两者的管道解析、可执行文件调用逻辑完全不同,导致sha1被当成PowerShell表达式而非openssl的参数。

解决方案分两种场景:

1. 使用纯CMD窗口执行(推荐,符合教程原命令逻辑)

打开系统的「命令提示符」(不是PowerShell),执行以下调整后的命令:

keytool -exportcert -alias <你的密钥库别名> -keystore <你的密钥库文件路径> | "C:\OpenSSL\bin\openssl.exe" sha1 -binary | "C:\OpenSSL\bin\openssl.exe" base64
  • 替换<你的密钥库别名>和<你的密钥库文件路径>为实际值,比如密钥库在当前目录叫myapp.keystore,别名是myalias,命令就是:
    keytool -exportcert -alias myalias -keystore myapp.keystore | "C:\OpenSSL\bin\openssl.exe" sha1 -binary | "C:\OpenSSL\bin\openssl.exe" base64
    
  • 注意:如果keytool找不到,需要把JDK的bin目录(比如C:\Program Files\Java\jdk1.8.0_301\bin)加入系统环境变量,或者写全keytool的绝对路径。

2. 若必须在PowerShell中执行

调整命令语法,用&调用可执行文件,或者直接让PowerShell调用CMD执行原命令:

  • 方式一:适配PowerShell的管道语法
    & keytool -exportcert -alias <你的密钥库别名> -keystore <你的密钥库文件路径> | & "C:\OpenSSL\bin\openssl.exe" sha1 -binary | & "C:\OpenSSL\bin\openssl.exe" base64
    
  • 方式二:直接调用CMD执行原命令(更简单)
    cmd /c 'keytool -exportcert -alias <你的密钥库别名> -keystore <你的密钥库文件路径> | "C:\OpenSSL\bin\openssl.exe" sha1 -binary | "C:\OpenSSL\bin\openssl.exe" base64'
    

额外检查点

  • 确认C:\OpenSSL\bin\openssl.exe路径正确,如果你的OpenSSL安装在其他目录(比如D:\OpenSSL-win64\bin),替换为实际路径。
  • 执行命令时会要求输入密钥库密码,输入后即可生成Facebook登录所需的哈希值。

内容的提问来源于stack exchange,提问作者Wind_dk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:31:14