當前位置:首頁 » 以太坊知識 » 以太坊私鑰被別人知道

以太坊私鑰被別人知道

發布時間: 2021-08-14 20:14:31

『壹』 買入比特幣後,賣家也知道私鑰怎麼辦

如果你是直接買比特幣的話,是別人給你的比特幣地址轉入一定數量的幣
地址是你的,私鑰也是你的,
你是在別人給你轉的時候 把私鑰也告訴對方了 嗎?

如果別人知道你的私鑰是有可能把你錢包里的比特幣轉走的
你可以把比特幣轉給別人,生成新的地址,別人再把幣轉回來給你
這樣就產生新的私鑰地址了,但這樣轉來轉去是收手續費的

『貳』 發現別人的RSA私鑰和自己的公鑰相同,要不要改

當然不用更換了!A的私鑰只有他自己知道,B的公鑰是公開的,所以只有A知道他的私鑰跟B的公鑰是相同的,這有什麼關系,他又不會告訴別人自己的私鑰是跟B的公鑰一樣!當然A的公鑰也是公開的。

『叄』 有一個以太坊地址,在哪裡找它的私鑰

他的私鑰在開發者或者擁有者那裡吧。合約數字商品交易平台。

『肆』 以太妨錢包映射中私鑰丟失怎麼找回

丟失的話最好是在貼丟失廣告

『伍』 區塊鏈不能隨便告訴給別人是:BTC私鑰還是BTC地址還是錢包安全密碼

這是重要性排序:BTC私鑰、錢包安全密碼、BTC地址
私鑰是一切,一定不能告訴任何人。
只要有私鑰就可以重新導入錢包,重新設置錢包安全密碼。
一個BTC賬戶可以有很多地址,所以裡面最不重要的就是地址。不管多不重要,都不能隨便告訴別人。

『陸』 ETH發錯了錢包地址可以找回嗎

可以。

ETH發錯了錢包地址是可以找回的。找回是需要聯系工作人員,反饋後讓工作人員協助找回,這種情況是需要時間進行找回的,需要提供大量的交易過程信息。

但是要注意的是一般自充出現這種情況平台是不負責找回的,但是聯系工作人員如果充值時間較短,處理簡單的話一般是可以找回的,但需要花費一定的時間以及人力和物力。

(6)以太坊私鑰被別人知道擴展閱讀:

如ETH等,充值錯了幣種,需要去咨詢平台那邊,看能否找回。每個平台都掌控了所有充值地址的私鑰,如果轉賬完成了,那幣肯定是在充值地址裡面,主要看平台是否願意幫找回。

小額的平台大概率是不會願意的,因為涉及到導出私鑰等,風險很大,所以充值前一定要仔細看清楚。如果自己轉幣轉錯地址了的。比如BCH轉到BTC地址裡面去了,實際上把那個比特幣地址的私鑰導入BCH錢包就可以了,其他的幣也是類似。

如果是轉到錯誤的地址了,如ETH轉賬轉到別人的地址了,可以先去查看這筆轉賬有沒有被確認,礦工是否已經打包。如果礦工已經將交易打包完畢,ETH已經從你的錢包中轉出了,那麼交易是無法撤銷的。

『柒』 能一直往下查到從我被盜的以太坊錢包流出的以太幣的所有地址嗎

找高手

『捌』 「我」錢包里的eth是怎麼被盜的

新手不要折騰錢包,可以把幣放在值得信任的交易所代為保管。
私鑰務必保護好,不要讓除了自己的任何人知道。
錢包非常重要,如果要使用,要充分了解選擇。

『玖』 知道RAS的公鑰,如何通過程序加密一個字元串呀 私鑰在別人手上,不用我解密。使用軟體VS2005/CBuilder

//------------rsa.h--------------------

#ifndef RSAH
#define RSAH
//-------------------------------------------------------------------------
#include <iostream>
#include <windows.h>
#include <wincrypt.h>

typedef struct tagRSAFileStruct
{
char m_szVersion[11];
char m_szDate[21];
char m_szPrivider[61];
char m_szCustomer[61];
char m_szUserID[21];
char m_szPubKey[2049];
char m_szPrvKey[2049];
char m_szMD5Str[33];
}RSAFile;

//-------------------------------------------------------------------------
class XRSA
{
private:
unsigned int m_iErrorNo;
unsigned char Char2Hex(unsigned char byVal);
void Char2HexStr(unsigned char byVal, char * pszBuffer);

char *m_pszPubKey, *m_pszPrvKey;
char *m_pszOutData;

public:
XRSA();
~XRSA();

public:
int GetErrorNo();
//解密文件
int Decrypt(unsigned char *pszKey, //解密用密鑰
DWORD dwKeyLen, //密鑰長度
unsigned char *pszInBuffer,//輸入密文文件
DWORD dwInLen,//輸入密文文件長度
unsigned char **pszOutBuffer, //輸出明文文件
DWORD &dwOutLen //輸出明文文件長度
);

//加密文件
int Encrypt(unsigned char *pszKey,//加密用的密鑰
DWORD dwKeyLen , //加密密鑰長度
unsigned char *pszInBuffer,//輸入明文文件
DWORD dwInLen, //輸入明文文件長度
unsigned char **pszOutBuffer ,//輸出密文文件
DWORD &dwOutLen //輸出密文文件長度
);

int GenerateRSAKey(unsigned char **pszPubKey, //公鑰文件
DWORD &dwPubKeyLen, //公鑰的長度
unsigned char **dwPrvKey,//私鑰文件
DWORD &dwPrvKeyLen //私鑰的長度
);

public:
int HexStr2Hex(char *pszBuffer, //Hex data buffer
int iInLen, //Hex data len
char *pszHexBuffer //以輸出結果,以字元串形式
//必須保證該空間至少是輸入長度的2倍+1
);
int Hex2HexStr(char *pszHexBuffer, int iInLen, char *pszBuffer);
};
//-------------------------------------------------------------------------
#endif

//------------rsa.cpp--------------------

#include "RSA.H"
#include "stdio.h"
unsigned char XRSA::Char2Hex(unsigned char val)
{
if (val >= '0' && val <= '9')
return val - 0x30;
else if (val >= 'A' && val <= 'F')
return (val - 0x41 + 10);
else if (val >= 'a' && val <= 'f')
return (val - 0x61 + 10);
else
return 0;
}
void XRSA::Char2HexStr(unsigned char val, char * buff)
{
sprintf(buff, "%02x", val);
buff[2]=0;
return;
}

int XRSA::HexStr2Hex(char *buff, int len, char *hexbuff)
{
unsigned char hi4, low4, byval;
int i,j;

for (i=0, j=0; i<len; i+=2, j++)
{
hi4 = Char2Hex(buff[i]);
if (i<len)
low4 = Char2Hex(buff[i+1]);
else
low4 = 0;
byval = hi4 * 0x10 + low4;

hexbuff[j] = byval;
}
return j;
}

int XRSA::Hex2HexStr(char *hex, int len, char *buff)
{
char tempbuff[10];

memset(buff, 0, len*2+1);

for (int i=0; i<len; i++)
{
Char2HexStr(hex[i], tempbuff);
strcat(buff, tempbuff);
}
return len * 2;
}
//-----------------------------------------------------------
XRSA::XRSA()
{
m_iErrorNo = 0;
m_pszPubKey = NULL;
m_pszPrvKey = NULL;
m_pszOutData = NULL;
}
//-----------------------------------------------------------
XRSA::~XRSA()
{
if(m_pszPubKey != NULL)
{
delete []m_pszPubKey;
m_pszPubKey = NULL;
}
if(m_pszPrvKey != NULL)
{
delete []m_pszPrvKey;
m_pszPrvKey = NULL;
}
if(m_pszOutData != NULL)
{
delete []m_pszOutData;
m_pszOutData = NULL;
}
}
//-----------------------------------------------------------
int XRSA::Decrypt(unsigned char *pszKey, //解密用密鑰, HexStr
DWORD dwKeyLen, //密鑰長度
unsigned char *pszInBuffer, //輸入密文緩沖區
DWORD dwInLen, //輸入密文長度
unsigned char **pszOutBuffer, //輸出明文
DWORD &dwOutLen //輸出明文長度
)
{
//var begin ------------------------------------------------
HCRYPTPROV t_hCryptProv; //臨時的密鑰容器句柄
HCRYPTKEY t_hKey; //臨時的密鑰句柄
int result = 0; //返回結果值,如果正常返回為0
unsigned char *tempDivSrcData;
int j=0;
int t=0;

char *pszRealKey, *pszPointer;
//var end -------------------------------------------------

pszRealKey = new char[dwKeyLen];

dwKeyLen = HexStr2Hex(pszKey, dwKeyLen, pszRealKey);

//連接密鑰容器
/*不管密鑰容器存在不存在先幹掉它再生成,如果生成失敗就返回-1*/
CryptAcquireContext(&t_hCryptProv,"Mecrt Temp CSP",NULL, PROV_RSA_FULL,CRYPT_DELETEKEYSET);
if(!CryptAcquireContext(&t_hCryptProv,"Mecrt Temp CSP",NULL, PROV_RSA_FULL,CRYPT_NEWKEYSET))
{
m_iErrorNo = GetLastError();
delete []pszRealKey;
return -1;
}
//------------------------------------------------------------
/*倒入解密用的密鑰文件,如果失敗返回-2*/
if(!CryptImportKey(t_hCryptProv, pszRealKey, dwKeyLen, 0, 0,&t_hKey))
{
m_iErrorNo = GetLastError();
delete []pszRealKey;
return -2;
}

//-------------------------------------------------------------
if(m_pszOutData != NULL)
{
delete []m_pszOutData;
}
m_pszOutData = new char[dwInLen * 128 + 1];

*pszOutBuffer = m_pszOutData;
pszPointer = m_pszOutData;

tempDivSrcData = new unsigned char[128+1];
//-------------------------------------------------------------
// 數據解密
//------------------------------------------------------------------------
for(int i=0; i*128 < (int)dwInLen;i++)
{
pszInBuffer += i*128;

if( (dwInLen - i*128) > 0 ) j = 128;
else j = (dwInLen - i*128);

memset(tempDivSrcData,0x00,128+1);
memcpy(tempDivSrcData, pszInBuffer, j);

if(!CryptDecrypt(t_hKey, 0, true, 0, tempDivSrcData,(unsigned long *)&j))
{
m_iErrorNo = GetLastError();
result = -2;
break;
}
t += j;

memcpy(pszPointer + j, tempDivSrcData,j);
pszPointer = pszPointer + j;
}
//--------------------------------------------------
dwOutLen = t;
//----------------------------------------------------------------
//-------------------------結束清空垃圾----------------------

delete tempDivSrcData;
delete []pszRealKey;

CryptDestroyKey(t_hKey);
CryptReleaseContext(t_hCryptProv,0);

return result;
}
//---------------------------------------------------------------------------
int XRSA::Encrypt(unsigned char *pszKey, //加密用的密鑰,HexStr
DWORD dwKeyLen , //加密密鑰長度
unsigned char *pszInBuffer, //需要加密的緩沖區
DWORD dwInLen, //需要加密的緩沖區長度
unsigned char **pszOutBuffer, //輸出密文
DWORD &dwOutLen //輸出密文長度
)
{
//var begin ------------------------------------------------
HCRYPTPROV t_hCryptProv; //臨時的密鑰容器句柄
HCRYPTKEY t_hKey; //臨時的密鑰句柄
int result = 0; //返回結果值,如果正常返回為0
unsigned char *tempDivSrcData;
int j=0;
int t=0;

char *pszRealKey, *pszPointer;
//var end -------------------------------------------------

pszRealKey = new char[dwKeyLen];
dwKeyLen = HexStr2Hex(pszKey, dwKeyLen, pszRealKey);

//連接密鑰容器
/*不管密鑰容器存在不存在先刪除它再生成,如果生成失敗就返回-1*/
CryptAcquireContext(&t_hCryptProv,"Mecrt Temp CSP",NULL, PROV_RSA_FULL,CRYPT_DELETEKEYSET);
if(!CryptAcquireContext(&t_hCryptProv,"Mecrt Temp CSP",NULL, PROV_RSA_FULL,CRYPT_NEWKEYSET))
{
m_iErrorNo = GetLastError();
delete []pszRealKey;
return -1;
}
//------------------------------------------------------------
/*倒入解密用的密鑰文件,如果失敗返回-2*/
if(!CryptImportKey(t_hCryptProv, pszRealKey, dwKeyLen, 0, 0, &t_hKey))
{
m_iErrorNo = GetLastError();
delete []pszRealKey;
return -2;
}
//-------------------------------------------------------------
if(m_pszOutData != NULL)
{
delete []m_pszOutData;
}
m_pszOutData = new char[dwInLen * 128 + 1];

*pszOutBuffer = m_pszOutData;
pszPointer = m_pszOutData;

tempDivSrcData = new unsigned char[128+1];
//-------------------------------------------------------------
// 數據加密
for(int i=0; i*117 < (int)dwInLen;i++)
{
pszInBuffer += i * 117;

if( (dwInLen - i*117) > 0 ) j = 117;
else j = (dwInLen - i*117);

memset(tempDivSrcData,0x00,128+1);
memcpy(tempDivSrcData, pszInBuffer, j);

if(!CryptEncrypt(t_hKey, 0, true, 0, tempDivSrcData, (unsigned long *)&j, 128))
{
m_iErrorNo = GetLastError();
result = -3;
break;
}

t += j;

memcpy(pszPointer,tempDivSrcData,j);

pszPointer = pszPointer + j;
}
dwOutLen = t;
//----------------------------------------------------------------
//-------------------------結束清空垃圾----------------------

delete []tempDivSrcData;
delete []pszRealKey;

CryptDestroyKey(t_hKey);
CryptReleaseContext(t_hCryptProv,0);

return result;
}
//---------------------------------------------------------------------------
int XRSA::GenerateRSAKey(unsigned char **pszPubKey, //公鑰數據,輸出HexStr
DWORD &dwPubKeyLen, //公鑰長度,輸出
unsigned char **dwPrvKey, //私鑰文件,輸出HexStr
DWORD &dwPrvKeyLen //私鑰長度,輸出
)
{
//-------------------------Var Begin----------------------------------
HCRYPTPROV hCryptProv; //密鑰容器CSP句柄
HCRYPTKEY hKey; //密鑰文件的句柄
int result = 0; //函數默認返回值為0表示正常結束

char * pszTempPubKey, * pszTempPrvKey;
//-------------------------Var End------------------------------------

CryptAcquireContext(&hCryptProv,"Mecrt CSP",NULL, PROV_RSA_FULL,CRYPT_DELETEKEYSET);
if(!CryptAcquireContext(&hCryptProv,"Mecrt CSP",NULL, PROV_RSA_FULL,CRYPT_NEWKEYSET))
{
m_iErrorNo = GetLastError();
return -1;
}
//-------------------------------------------------------------------------
if (!CryptGenKey(hCryptProv,AT_KEYEXCHANGE ,0x04000000 |CRYPT_EXPORTABLE,&hKey))
{
m_iErrorNo = GetLastError();
return -2;
}

//---------------檢查輸出Key的長度------------------------------------------
if(!CryptExportKey(hKey,NULL,PUBLICKEYBLOB,0, NULL, &dwPubKeyLen))
{
m_iErrorNo = GetLastError();
result = -3;
goto __END;
}

//----------------取PubKey的Hex值-------------------------------------------
pszTempPubKey = new char[dwPubKeyLen];
if(!CryptExportKey(hKey,NULL,PUBLICKEYBLOB,0, pszTempPubKey, &dwPubKeyLen))
{
m_iErrorNo = GetLastError();
result = -3;

delete pszTempPubKey;

goto __END;
}

//------------輸出PubKey至HexStr--------------------------------------------
if(m_pszPubKey != NULL)
{
delete []m_pszPubKey;
}
m_pszPubKey = new char[dwPubKeyLen * 2 + 1];
dwPubKeyLen = Hex2HexStr(pszTempPubKey, dwPubKeyLen, m_pszPubKey);
//---------------檢查輸出Key的長度------------------------------------------
if(!CryptExportKey(hKey, NULL, PRIVATEKEYBLOB,0, NULL, &dwPrvKeyLen))
{
m_iErrorNo = GetLastError();
result = -4;

delete pszTempPubKey;

goto __END;
}
//----------------取PubKey的Hex值-------------------------------------------
pszTempPrvKey = new char[dwPrvKeyLen];
if(!CryptExportKey(hKey, NULL, PRIVATEKEYBLOB, 0, pszTempPrvKey, &dwPrvKeyLen))
{
m_iErrorNo = GetLastError();
result = -4;

delete pszTempPubKey;
delete pszTempPrvKey;

goto __END;
}
//------------輸出PrvKey至HexStr--------------------------------------------
if(m_pszPrvKey != NULL)
{
delete []m_pszPrvKey;
}
m_pszPrvKey = new char[dwPrvKeyLen * 2 + 1];
dwPrvKeyLen = Hex2HexStr(pszTempPrvKey, dwPrvKeyLen, m_pszPrvKey);

__END:
CryptDestroyKey(hKey);
CryptAcquireContext(&hCryptProv,"Mecrt CSP",NULL, PROV_RSA_FULL,CRYPT_DELETEKEYSET);
CryptReleaseContext(hCryptProv,0);

return result ;
}
//-------------------------------------------------------------------------
int XRSA::GetErrorNo()
{
return m_iErrorNo;
}

//----------------調用例子--------------------------

XRSA rsa;

rsa.Encrypt(.....);

熱點內容
元宇宙有哪些應用 發布:2025-06-23 04:14:40 瀏覽:30
比特幣礦機M20S 發布:2025-06-23 04:11:00 瀏覽:39
比特幣是一種什麼技術 發布:2025-06-23 04:03:47 瀏覽:464
投資etc還是eth 發布:2025-06-23 03:58:53 瀏覽:496
區塊鏈數字水印 發布:2025-06-23 03:56:48 瀏覽:324
挖比特幣需要多久 發布:2025-06-23 03:53:03 瀏覽:549
比特幣換多個地址 發布:2025-06-23 03:35:16 瀏覽:715
eth轉賬數量 發布:2025-06-23 03:21:21 瀏覽:448
bittrex是否分btc糖果 發布:2025-06-23 03:10:46 瀏覽:25
區塊鏈研究分析師 發布:2025-06-23 03:09:32 瀏覽:372