Openssl ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก


177

ฉันต้องการสร้างลายเซ็นแอปพลิเคชันสำหรับแอปของฉันซึ่งจะรวมเข้ากับ Facebook ในภายหลัง หนึ่งในบทเรียนของ Facebook ฉันพบคำสั่งนี้:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

ในบทช่วยสอนบอกว่าการรัน cmd นี้กระบวนการของฉันในการสร้างลายเซ็นจะเริ่มขึ้น

อย่างไรก็ตามคำสั่งนี้ให้ข้อผิดพลาด:

openssl is not recognized as an internal or external command

ฉันจะกำจัดสิ่งนี้ได้อย่างไร


10
ดาวน์โหลดและติดตั้งOpenSSL
Michael Petrotta

ฉันดาวน์โหลด 3 ในนั้นไม่มีใครเข้ากันได้: /
Khurram

1
นั่นหมายความว่าอย่างไร khurram?
Michael Petrotta

1
ฉันดาวน์โหลด openssl หลายรุ่นจากลิงค์ที่คุณให้ แต่แต่ละอันก็มีข้อผิดพลาดก่อนการติดตั้งซึ่งไม่เข้ากันกับ windows 7-64 บิต คุณสามารถบอกฉัน OpenSSL แน่นอนฉันต้อง
รัม

1
คุณสามารถรับได้จากลิงค์ที่ฉันโพสต์ใน ans ของฉันด้านล่าง ...
Usama Sarwar

คำตอบ:


395

ที่สถานที่แห่ง openssl ... คุณต้องใส่เส้นทางไปยังโฟลเดอร์ openssl ที่คุณดาวน์โหลดมา คำสั่งจริงของคุณควรมีลักษณะดังนี้:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:\Users\abc\openssl\bin\openssl.exe" sha1 -binary | "C:\Users\abc\openssl\bin\openssl.exe" base64

โปรดจำไว้ว่าเส้นทางที่คุณจะป้อนจะเป็นเส้นทางที่คุณติดตั้ง openssl ... หวังว่านี่จะช่วยได้ .. :-)

แก้ไข:

คุณสามารถดาวน์โหลด openssl สำหรับ windows 32 และ 64 บิตได้จากลิงค์ด้านล่าง:

OpenSSL สำหรับ 64 บิต

OpenSSL สำหรับ 32 บิต


1
มันบอกว่า c: \ openssl \ bin \ openssl ไม่เป็นที่รู้จัก
Akhil Jain

7
วิธีที่ดีกว่าคือการรันคำสั่งดั้งเดิมจากไดเร็กทอรี openssl / bin คือถ้าไดเรกทอรี openssl ของฉันอยู่ใน C: dev ฉันจะย้ายไปที่ C: \ dev \ openssl \ bin และรันคำสั่งตามที่เป็นอยู่
AnhSirk Dasarp

2
คุณควรชี้ให้เห็นไฟล์ openssl.exe: exportcert -alias androiddebugkey -keystore ~ ​​/ .android /debug.keystore | "C: \ openssl \ bin \ openssl.exe" sha1 -binary | "C: \ openssl \ bin \ op enssl.exe" base64
phanhongphucit

@ LatentBoy yess คุณพูดถูก วิธีการของคุณทำงานให้ฉัน ขอบคุณมาก.
surhidamatya

ขอบคุณ ... หลังจากใช้เวลาประมาณหนึ่งชั่วโมงคำตอบของคุณก็ใช้ได้กับฉัน
Krupal Shah

23

ใช้เส้นทางทั้งหมดเช่นนี้

exportcert -alias androiddebugkey -keystore ~/.android
/debug.keystore | "C:\openssl\bin\openssl.exe" sha1 -binary | "C:\openssl\bin\op
enssl.exe" base64

มันใช้งานได้สำหรับฉัน


18

โปรดปฏิบัติตามขั้นตอนเหล่านี้ฉันหวังว่ากุญแจของคุณจะทำงานอย่างถูกต้อง:

  1. ขั้นตอนที่ 1คุณจะต้องมี OpenSSL คุณสามารถดาวน์โหลดไบนารีจากโครงการopenssl-for-windowsบน Google Code

  2. ขั้นตอนที่ 2 Unzip โฟลเดอร์จากนั้นคัดลอกพา ธ ไปยังbinโฟลเดอร์ไปยังคลิปบอร์ด

    ตัวอย่างเช่นถ้าแฟ้มถูกซิปไปยังตำแหน่งนั้นคัดลอกเส้นทางC:\Users\gaurav\openssl-0.9.8k_WIN32C:\Users\gaurav\openssl-0.9.8k_WIN32\bin

  3. ขั้นตอนที่ 3เพิ่มเส้นทางไปยังเส้นทางสภาพแวดล้อมระบบของคุณ หลังจากPATHตั้งค่าตัวแปรสภาพแวดล้อมของคุณแล้วให้เปิด cmd และพิมพ์คำสั่งนี้:

    C:\>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64

    พิมพ์รหัสผ่านของคุณเมื่อได้รับแจ้ง หากคำสั่งใช้งานได้คุณจะเห็นปุ่ม


FYI: โดยปกติรหัสผ่าน debug.keystore เป็นเพียง "android"
คนอยู่ที่ไหนสักแห่ง

11

นี่ใช้งานได้สำหรับฉันสำเร็จ

"C: \ Program Files \ Java \ jdk1.6.0_26 \ bin \ keytool.exe" -exportcert -alias socialallisting -keystore "D: \ keystore \ SocialListing" | "C: \ cygwin \ bin \ openssl.exe" sha1 -binary | "C: \ cygwin \ bin \ openssl.exe" base64

ระวังเส้นทางด้านล่าง:

  • "C: \ Program Files \ Java \ jdk1.6.0_26 \ bin \ keytool.exe"
  • "D: \ keystore \ SocialLIST"หรืออาจเป็นเช่นนี้ " C: \ Users \ Shaon.android \ debug.keystore "
  • "C: \ cygwin \ bin \ openssl.exe"หรืออาจเป็นเช่นนี้C: \ Users \ openssl \ bin \ openssl.exe

หากคำสั่งทำงานได้สำเร็จคุณจะเห็นคำสั่งนี้:

ป้อนรหัสผ่านที่เก็บคีย์: typeyourpassword

Encryptedhashkey **


10

มันเป็นคำตอบที่ล่าช้า แต่มันจะช่วยให้คนขี้เกียจอย่างฉัน .. เพิ่มรหัสนี้ลงในคลาสแอปพลิเคชันของคุณไม่จำเป็นต้องดาวน์โหลด openssl และไม่จำเป็นต้องกำหนดเส้นทาง .. เพียงแค่ต้องการเพียงแค่คัดลอกรหัสนี้ .. และ keyHash จะ สร้างในบันทึก

import com.facebook.FacebookSdk;
public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(this);
        printKeyHash();
    }

    private void printKeyHash() {
        try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.i("KeyHash:",
                        Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (PackageManager.NameNotFoundException e) {
            Log.e("jk", "Exception(NameNotFoundException) : " + e);
        } catch (NoSuchAlgorithmException e) {
            Log.e("mkm", "Exception(NoSuchAlgorithmException) : " + e);
        }
    }
}

และอย่าลืมเพิ่มคลาส MyApplication ในไฟล์ Manifest:

<application
        android:name=".MyApplication"
</application>

มันใช้งานได้กับ facebook เวอร์ชั่นที่วางจำหน่ายหรือไม่ ถ้าไม่ได้อย่างไร
MetaSnarf

รหัสนี้ใช้เพื่อสร้าง keyhash และมันก็เป็นกุญแจสำคัญเดียวกันสำหรับการเปิดตัวด้วย สำหรับรุ่นที่วางจำหน่ายตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าการเข้าถึงสาธารณะในคอนโซลผู้พัฒนา Facebook
Sagar Chavada

ได้รับข้อผิดพลาด "ทั้งบริบทและ applicationId ต้องไม่เป็นโมฆะ" เมื่อใช้รหัสด้านบน @SagarChavada
Yesha Shah

6

อันดับแรกนำทางไปยังโฟลเดอร์ Java / jre / bin ของคุณใน cmd cd c: \ Program Files (x86) \ Java \ jre7 \ bin

จากนั้นใช้: [เปลี่ยนเส้นทาง debug.keystore ไปยังตำแหน่งที่ถูกต้องในระบบของคุณ] ติดตั้ง openssl (สำหรับ windows 32 หรือ 64 ตามความต้องการของคุณที่ c: \ openssl)

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\vibhor\.android\debug.keystore" | "c:\openssl\bin\openssl.exe" sha1 -binary | "c:\openssl\bin\openssl.exe" base64

ดังนั้นคำสั่งทั้งหมดจะเป็นดังนี้: [พร้อมต์ให้ป้อนรหัสผ่านที่เก็บคีย์เมื่อเรียกใช้งาน]

c:\Program Files (x86)\Java\jre7\bin>keytool -exportcert -alias androiddebugkey
-keystore "C:\Users\vibhor\.android\debug.keystore" | "c:\openssl\bin\openssl.ex
e" sha1 -binary | "c:\openssl\bin\openssl.exe" base64
Enter keystore password:

5
Steps to create Hash Key. 
1: Download openssl from Openssl for Windows . I downloaded the Win64 version 
2:Unzip and copy all the files in the bin folder including openssl.exe(All file of bin folder) 
3:Goto to the folder where you installed JDK for me its C:\Program Files\Java\jdk1.8.0_05\bin 
4:Paste all the files you copied from Openssls bin folder to the Jdk folder. 

จากนั้นไปที่ C: \ Program Files \ Java \ jdk1.8.0_05 \ bin แล้วกดปุ่ม Shift แล้วคลิกขวาแล้วเปิด cmd

C:\Program Files\Java\jdk1.8.0_05\bin>//cmd path 

นั่นคือสำหรับ Sha1 ที่ผ่านมา
keytool นี้ -exportcert -alias androiddebugkey -keystore "C: \ User \ ABC \ .android.keystore" | openssl sha1 -binary | openssl base64
// และ ABC เป็นชื่อระบบใส่ชื่อระบบของตัวเอง


binคุณอ้างถึงโฟลเดอร์ใดในขั้นตอนที่สอง
Ionut Necula

2

ฉันใช้รหัสนี้:

นี่ใช้งานได้สำหรับฉันสำเร็จ

"C:\Program Files\Java\jdk1.6.0_26\bin\keytool.exe" -exportcert -alias sociallisting -
keystore "D:\keystore\SocialListing" | "C:\cygwin\bin\openssl.exe" sha1 -binary | 
"C:\cygwin\bin\openssl.exe" base64

2

ใช้สิ่งนี้ได้ผลกับฉัน โปรดเปลี่ยนเส้นทางของคุณ

C: \ Program Files \ Java \ jre7 \ bin keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ Ace.android \ debug.keystore" | "C: \ OpenSSL \ bin

\ openssl.exe "sha1 -binary |" C: \ openssl \ bin \ openssl.exe "base64


ต้องดาวน์โหลด openssl จากที่นี่ code.google.com/p/openssl-for-windows/downloads/ ......และคัดลอกโฟลเดอร์ bin แล้ววางไปที่ C: \ openssl \
Azahar

1

ดาวน์โหลดและ Unzip

คุณสามารถดาวน์โหลด openssl สำหรับ windows 32 และ 64 บิตได้จากลิงค์ด้านล่าง:

https://code.google.com/archive/p/openssl-for-windows/downloads

OpenSSL สำหรับ 64 Bits OpenSSL สำหรับ 32 Bits

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | **"C:\Users\keshav.gera\openssl-0.9.8k_X64\bin**\openssl.exe" sha1 -binary | **"C:\Users\keshav.gera\openssl-0.9.8k_X64\bin**\openssl.exe" base64

การเปลี่ยนเส้นทางที่สำคัญของเราที่นี่รวมถึงการติดตั้ง ssl แบบเปิดในระบบของคุณ

มันทำงานไม่ต้องสงสัยเลย

C:\Users\keshav.gera>keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | "C:\Users\keshav.gera\openssl-0.9.8k_X64\bin\openssl.exe" sha1 -binary | "C:\Users\keshav.gera\openssl-0.9.8k_X64\bin\openssl.exe" base64

ป้อนรหัสผ่านที่เก็บคีย์: android

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

================================================== ===========

ใช้ด้วยตนเองผ่านการเข้ารหัส

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


private void PrintHashKey() {

        try {
            PackageInfo info = getPackageManager().getPackageInfo("**com.keshav.patanjalidemo  Your Package Name Here**", PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");        
                md.update(signature.toByteArray());
                Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

    }

0

สำหรับผู้ที่กำลังมองหาสถานที่ล่าสุดเพื่อติดตั้ง openssl รุ่น windows binary (32 บิตและ 64 บิต) คุณสามารถค้นหาได้ที่นี่:

http://slproweb.com/products/Win32OpenSSL.html

รายการล่าสุดของเว็บไซต์ที่มีการแจกแจงแบบไบนารีอยู่ที่นี่

http://www.openssl.org/related/binaries.html


0

ไปที่ bin โฟลเดอร์เส้นทางใน cmd แล้วเรียกใช้คำสั่งต่อไปนี้

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

คุณจะได้รับแฮชของคุณ


0

สำหรับผู้ใช้ windows ดาวน์โหลด open ssl จากที่เก็บรหัสของ google https://code.google.com/p/openssl-for-windows/downloads/list

หลังจากดาวน์โหลดแล้วให้คลายบีบอัดเนื้อหาไปยังโฟลเดอร์ในไดรฟ์ c:

จากนั้นอัปเดตตัวแปรสภาพแวดล้อม PATH ของคุณเพื่อให้คุณสามารถใช้. exe จากตำแหน่งใด ๆ ในบรรทัดคำสั่งของคุณ

[windows 8] หากต้องการอัปเดตตัวแปรสภาพแวดล้อม PATH ของคุณให้คลิกคอมพิวเตอร์ของฉัน -> คุณสมบัติ -> การตั้งค่าระบบขั้นสูง

คลิกแท็บขั้นสูงและคลิกปุ่ม 'ตัวแปรสภาพแวดล้อม' ที่ด้านล่างของกล่องโต้ตอบจากนั้นเลือกรายการเส้นทางจากส่วน 'ตัวแปรระบบ' โดยคลิกแก้ไข

วางพา ธ ไปยังโฟลเดอร์ bin ของการดาวน์โหลด openssl ที่แตกแล้วคลิกตกลง

คุณจะต้องปิดและเปิดและพรอมต์คำสั่งที่คุณอาจเปิดใช้ก่อนหน้านี้เพื่อให้คุณสามารถโหลดการตั้งค่าเส้นทางที่อัปเดต

ตอนนี้รันคำสั่งนี้:

keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ Oladipo.android \ debug.keystore" | openssl sha1 -binary | openssl base64

คุณควรเห็นรหัสผู้พัฒนา


0

สิ่งนี้ใช้ได้กับฉัน:

C:\Users\example>keytool -exportcert -alias androiddebugkey -keystore 
"C:\Users\example\.android" | "C:\openssl\bin\openssl.exe" sha1 -binary 
| "C:\openssl\bin\oenssl.exe" base64

-1

ไม่รับประกันว่าการสร้างแฮชคีย์ด้วยเมธอด openssl เดี่ยวนี้จะทำงานได้ ถ้ามันไม่ทำงานสำหรับฉัน แต่ขอบคุณที่ให้ทิศทางฉันในการแก้ปัญหาของฉัน

โซลูชั่นที่รับประกัน: คุณต้องแบ่งคำสั่งทั้งหมดในคำสั่งแยกต่างหากและต้องเขียนเอาต์พุตของทุกการประมวลผลในไฟล์

คุณสามารถรับความช่วยเหลือได้จากลิงค์ต่อไปนี้:

http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1

สนุก :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.