當前位置:首頁 » 以太坊知識 » php簽名交易以太坊

php簽名交易以太坊

發布時間: 2021-10-18 14:25:29

『壹』 php實現簽名,手頭上有中行提供的pfx文件,進行簽名後傳遞給java做簽名驗證,請大神幫忙。

把問題難點和細節發到[email protected]
可以幫你看看的

用1,生成信用證,php中中簽名數據傳給java,
謹慎操作應該無誤的。

『貳』 Php如何調用以太坊介面進行交互

通過curl來模擬,然後獲取數據,並按json格式使用

『叄』 php如何做數字簽名

概括就是:「學會用PHP的openssl擴展!!」
1、先用openssl_pkey_new()函數產生一個私鑰pri_key,
2、用openssl_csr_new()函數以私鑰pri_key 產生一個信用證csr
3、用openssl_sign()函數以私鑰pri_key對一段數據data產生一個數字簽名signature。
4、用openssl_pkey_get_public()函數從信用證csr中獲得公鑰pub_key
5、把公鑰pub_key、數字簽名signature、數據data發給對方。
6、對方收到3項後,用openssl_verify()函數或其他驗證工具,驗證簽名。
7、對方驗證有效,開始使用你的信息data。驗證無效,再找你扯皮。
整個過程的雙方可以互換,即可讓對方出具三項,你來驗證。

『肆』 Php如何調用以太坊介面

curl方法,file_get_contents,

『伍』 php對接第四方支付介面報簽名錯誤求解一下

你這個 sign 和示例裡面的順序不一樣,比如 app_order_id 和 orderid 的順序

『陸』 用PHP如何實現數字簽名啊··跪求高人指點···

以下是資料:

php中數字簽名與校驗

1. 先用php生成一對公鑰和私鑰

$res = openssl_pkey_new();
openssl_pkey_export($res,$pri);
$d= openssl_pkey_get_details($res);
$pub = $d['key'];
var_mp($pri,$pub);

輸出依次為私鑰和公鑰的pem字串,如:

string(916) "-----BEGIN PRIVATE KEY-----

wsETi80b4ZyYlYUSsAtvS7ZG+GSLAox24TKNwWIy5cUdKfK/5QEJjZ0S8LjRSYCG
+8z

+st3fjEblEfcPcoIq5uiKx2bnO3
f9g0yt+
+UI8OhmLbw/Vyh6Ii1glwMfyq
VS2lAakj9d1hqLYZvw+eNeZBnzZNPuMJg5aj/WKUqasCQQDHiFLS7Yb1rbhfjmRt
ZL4zXuvX1hVjTNo2TeZwPniGpYa+QHcauDDep5C9q//n+D+ZtkbkECxpOVhrUHSI
+
+a2epF/YENEtjL6N2RE8Y+0oTdlwr

b4dQkRkfqCHtyrWOeRcC1Y6FyTfNj+cRBzdIcmFc21hxj6HKy2M6/XGI3rAE5L+B
mmlSmN1enhoCUqc=
-----END PRIVATE KEY-----
"
string(272) "-----BEGIN PUBLIC KEY-----
+Y4dUMLBE4vNG+Gc
+UBCY2dEvC40UmAhraPS5MEE0Ky
mPAQV1QkEEt1V0as+KJ/W5nBksizCur0MbfTZyaZOmgZiRO89+fvM00y8HVG2GjA
HGKq7GA34AUjQYMGwwIDAQAB
-----END PUBLIC KEY-----
"

2. 保存好自己的私鑰,把公鑰可以公開給別人。如果需要對某數據進行簽名,證明那數據是從你這里發出的,就需要用私鑰:

$res = openssl_pkey_get_private($pri);
if (openssl_sign('hello', $out, $res))
var_mp(base64_encode($out));

上例中 $pri 為自己的私鑰,'hello' 為待簽名的數據,如果簽名成功,最後輸出為base64編碼後的簽名,如:

j19H+C/NQEcyowezOQ+gmGi2UoPJNXyJ+/p/pp7il+xGz2aUWdOXkJFgIc/+ieokMLFm9cmtN2hGag9vq1s=

3. 別人收到你的數據 'hello' 和簽名字串,想驗證這是從你發來的數據的話,用你公開的公鑰驗證:

$sig = base64_decode($sig);
$res = openssl_pkey_get_public($pubkey);
if (openssl_verify('hello', $sig, $res) === 1)
; // 通過驗證

上例中剛開始的 $sig 為之前你base64編碼過的簽名, $pubkey 為你的公鑰

php中這種簽名使用的是RSA演算法;數字簽名可以在 單點登錄 等系統中派上用場。

『柒』 分享一個php如何開發以太坊的教程

以太坊規定了每個節點需要實現的JSON RPC API 應用開發介面,該介面是傳輸無關的,應用程序可以通過HTTP、websocket或IPC等多種 通信機制來使用該介面協議操作以太坊節點:

『捌』 如何創建和簽署以太坊交易

交易

區塊鏈交易的行為遵循不同的規則集

  • 由於公共區塊鏈分布式和無需許可的性質,任何人都可以簽署交易並將其廣播到網路。

  • 根據區塊鏈的不同,交易者將被收取一定的交易費用,交易費用取決於用戶的需求而不是交易中資產的價值。

  • 區塊鏈交易無需任何中央機構的驗證。僅需使用與其區塊鏈相對應的數字簽名演算法(DSA)使用私鑰對其進行簽名。

  • 一旦一筆交易被簽名,廣播到網路中並被挖掘到網路中成功的區塊中,就無法恢復交易。

  • 以太坊交易結構

  • 以太坊交易的數據結構:交易0.1個ETH

    {
    'nonce':'0x00', // 十進制:0
    'gasLimit': '0x5208', //十進制: 21000
    'gasPrice': '0x3b9aca00', //十進制1,000,000,000
    'to': '' ,//發送地址
    'value': '0x16345785d8a0000',//100000000000000000 ,10^17
    'data': '0x', // 空數據的十進製表示
    'chainId': 1 // 區塊鏈網路ID
    }

    這些數據與交易內容無關,與交易的執行方式有關,這是由於在以太坊中發送交易中,您必須定義一些其他參數來告訴礦工如何處理您的交易。交易數據結構有2個屬性設計"gas": "gasPrice","gasLimit"。

  • "gasPrice": 單位為Gwei, 為 1/1000個eth,表示交易費用

  • "gasLimit": 交易允許使用的最大gas費用。

  • 這2個值通常由錢包提供商自動填寫。

    除此之外還需要指定在哪個以太坊網路上執行交易(chainId): 1表示以太坊主網。

    在開發時,通常會在本地以及測試網路上進行測試,通過測試網路發放的測試ETH進行交易以避免經濟損失。在測試完成後再進入主網交易。

    另外,如果需要提交一些其它數據,可以用"data"和"nonce"作為事務的一部分附加。

    A nonce(僅使用1次的數字)是以太坊網路用於跟蹤交易的數值,有助於避免網路中的雙重支出以及重放攻擊。

  • 以太坊交易簽名

    以太坊交易會涉及ECDSA演算法,以Javascript代碼為例,使用流行的ethers.js來調用ECDSA演算法進行交易簽名。

  • const ethers = require('ethers')

  • const signer = new ethers.Wallet('錢包地址')


  • signer.signTransaction({

  • 'nonce':'0x00', // 十進制:0

  • 'gasLimit': '0x5208', //十進制: 21000

  • 'gasPrice': '0x3b9aca00', //十進制1,000,000,000

  • 'to': '' ,//發送地址

  • 'value': '0x16345785d8a0000',//100000000000000000 ,10^17

  • 'data': '0x', // 空數據的十進製表示

  • 'chainId': 1 // 區塊鏈網路ID

  • })

  • .then(console.log)
  • 可以使用在線使用程序Composer將已簽名的交易傳遞到以太坊網路。這種做法被稱為」離線簽名「。離線簽名對於諸如狀態通道之類的應用程序特別有用,這些通道是跟蹤兩個帳戶之間余額的智能合約,並且在提交已簽名的交易後就可以轉移資金。離線簽名也是去中心化交易所(DEXes)中的一種常見做法。

    也可以使用在線錢包通過以太坊賬戶創建簽名驗證和廣播。

    使用Portis,您可以簽署交易以與加油站網路(GSN)進行交互。


鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。

『玖』 PHP中怎麼寫簽名圖像

<?php
header("Content-type: image/png"); $image = imagecreatefrompng("pic.png"); //剛PS圖片的路徑
$color = imagecolorallocate($image,120,120,120); //輸出的字體顏色 imagettftext ( $image, 9, 0, 55, 110, $color, './msyh.ttf', '標題...[2008-12-12]' ); //字體文件路徑 輸出的內容 imagepng($image); imagedestroy($image);
注釋也寫出來了,應該看的懂把?

熱點內容
如何在幣圈掙一個億 發布:2025-07-03 15:46:19 瀏覽:385
比特幣挖出來的意義 發布:2025-07-03 15:37:49 瀏覽:680
2016年江卓爾預測比特幣價格 發布:2025-07-03 15:24:38 瀏覽:57
幣圈平台交易宣傳語 發布:2025-07-03 15:19:31 瀏覽:316
怎樣加入區塊鏈節點 發布:2025-07-03 15:12:56 瀏覽:190
比特幣前生 發布:2025-07-03 15:00:01 瀏覽:714
中國比特幣第一人新東方老師 發布:2025-07-03 14:51:03 瀏覽:655
區塊鏈中的區塊和節點 發布:2025-07-03 14:48:22 瀏覽:686
去益陽中心醫院看婦科好嗎 發布:2025-07-03 14:48:02 瀏覽:862
基礎設施投資與區塊鏈 發布:2025-07-03 14:45:56 瀏覽:890