0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個(gè)用于破解Google驗(yàn)證碼的方法

開關(guān)電源芯片 ? 來源:進(jìn)擊的Coder ? 作者:崔慶才 ? 2021-09-01 11:16 ? 次閱讀

今天給大家介紹一個(gè)用于破解 Google ReCAPTCHA 的方法。

ReCAPTCHA 介紹可能大家還沒聽說過什么是 ReCAPTCHA,可能由于某些原因,這個(gè)驗(yàn)證碼在國內(nèi)出現(xiàn)不多,不過想必大家應(yīng)該多多少少見過或用過。它長這個(gè)樣子:

這時(shí)候,只要我們點(diǎn)擊最前面的復(fù)選框,驗(yàn)證碼算法會首先利用其「風(fēng)險(xiǎn)分析引擎」做一次安全檢測,如果直接檢驗(yàn)通過的話,我們會直接得到如下的結(jié)果:

如果算法檢測到當(dāng)前系統(tǒng)存在風(fēng)險(xiǎn),比如可能是陌生的網(wǎng)絡(luò)環(huán)境,可能是模擬程序,會需要做二次校驗(yàn)。它會進(jìn)一步彈出類似如下的內(nèi)容:

比如上面這張圖,驗(yàn)證碼頁面會出現(xiàn)九張圖片,同時(shí)最上方出現(xiàn)文字「樹木」,我們需要點(diǎn)選下方九張圖中出現(xiàn)「樹木」的圖片,點(diǎn)選完成之后,可能還會出現(xiàn)幾張新的圖片,我們需要再次完成點(diǎn)選,最后點(diǎn)擊「驗(yàn)證」按鈕即可完成驗(yàn)證?;蛘呶覀兛梢渣c(diǎn)擊下方的「耳機(jī)」圖標(biāo),這時(shí)候會切換到聽寫模式,驗(yàn)證碼會變成這樣:

這時(shí)候我們?nèi)绻芴顚憣︱?yàn)證碼讀的音頻內(nèi)容,同樣可以通過驗(yàn)證。這兩種方式都可以通過驗(yàn)證,驗(yàn)證完成之后,我們才能完成表單的提交,比如完成登錄、注冊等操作。這種驗(yàn)證碼叫什么名字?這個(gè)驗(yàn)證碼就是 Google 的 ReCAPTCHA V2 驗(yàn)證碼,它就屬于行為驗(yàn)證碼的一種,這些行為包括點(diǎn)選復(fù)選框、選擇對應(yīng)圖片、語音聽寫等內(nèi)容,只有將這些行為校驗(yàn)通過,此驗(yàn)證碼才能通過驗(yàn)證。相比于一般的圖形驗(yàn)證碼來說,此種驗(yàn)證碼交互體驗(yàn)更好、安全性會更高、破解難度更大。

其實(shí)上文所介紹的驗(yàn)證碼僅僅是 ReCAPTCHA 驗(yàn)證碼的一種形式,是 V2 的顯式版本,另外其 V2 版本還有隱式版本,隱式版本在校驗(yàn)的時(shí)候不會再顯式地出現(xiàn)驗(yàn)證頁面,它是通過 JavaScript 將驗(yàn)證碼和提交按鈕進(jìn)行綁定,在提交表單的時(shí)候會自動完成校驗(yàn)。除了 V2 版本,Google 又推出了最新的 V3 版本,reCAPTCHA V3 驗(yàn)證碼會為根據(jù)用戶的行為來計(jì)算一個(gè)分?jǐn)?shù),這個(gè)分?jǐn)?shù)代表了用戶可能為機(jī)器人的概率,最后通過概率來判斷校驗(yàn)是否可以通過。其安全性更高、體驗(yàn)更好。

體驗(yàn)?zāi)悄睦锟梢泽w驗(yàn)到 ReCAPTCHA 呢?我們可以打開這個(gè)網(wǎng)站:https://www.google.com/recaptcha/api2/demo,建議科學(xué)上網(wǎng),同時(shí)用匿名窗口打開,這樣的話測試不會受到歷史 Cookies 的干擾,如圖所示:

這時(shí)候,我們可以看到下方有個(gè) ReCAPTCHA 的窗口,然后點(diǎn)擊之后就出現(xiàn)了一個(gè)驗(yàn)證圖塊。

當(dāng)然靠人工是能解的,但對于爬蟲來說肯定不行啊,那怎么自動化解呢?

接下來我們就來介紹一個(gè)簡單好用的平臺。

解決方案本次我們介紹的一個(gè) ReCAPTCHA 破解服務(wù)叫做 YesCaptcha,主頁是 http://yescaptcha.365world.com.cn/,它現(xiàn)在同時(shí)可以支持 V2 和 V3版本的破解。

我們這次就用它來嘗試解一下剛才的 ReCAPTCHA 上的 V2 類型驗(yàn)證碼:https://www.google.com/recaptcha/api2/demo。

簡單注冊之后,可以找到首頁有一個(gè) Token。我們可以復(fù)制下來以備后面使用

它有兩個(gè)關(guān)鍵的 API,一個(gè)是創(chuàng)建驗(yàn)證碼服務(wù)任務(wù),另一個(gè)是查詢?nèi)蝿?wù)狀態(tài),API 如下:

創(chuàng)建任務(wù):http://api.yescaptcha.365world.com.cn/v3/recaptcha/create

查詢狀態(tài):http://api.yescaptcha.365world.com.cn/v3/recaptcha/status

API 文檔可以參考這里:http://docs.yescaptcha.365world.com.cn/

經(jīng)過 API 文檔可以看到使用的時(shí)候可以配置如下參數(shù)

參數(shù)名是否必須說明

token是請?jiān)趥€(gè)人中心獲取 (Token)

siteKey是ReCaptcha SiteKey (固定參數(shù))

siteReferer是ReCaptcha Referer (一般也為固定參數(shù))

captchaType否ReCaptchaV2(默認(rèn)) / ReCaptchaV3

siteAction否ReCaptchaV3 選填 Action動作 默認(rèn)verify

minScore否ReCaptchaV3 選填 最小分?jǐn)?shù)(0.1-0.9)

這里就有三個(gè)關(guān)鍵信息了:

token:就是剛才我們在 YesCaptcha 上復(fù)制下來的參數(shù)

siteKey:這個(gè)是 ReCAPACHA 的標(biāo)志字符串,稍后我們會演示怎么找。

siteReferer,一般是 ReCAPTCHA 的來源網(wǎng)站的 Referer,比如對于當(dāng)前的案例,該值就是 https://www.google.com/recaptcha/api2/demo

那 siteKey 怎么找呢?其實(shí)很簡單,我們看下當(dāng)前 ReCAPTCHA 的 HTML 源碼,從源碼里面找一下就好了

這里可以看到每個(gè) ReCAPTCHA 都對應(yīng)一個(gè) div,div 有個(gè)屬性叫做 date-sitekey,看這里的值就是:

6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-

好,萬事俱備了,只差代碼了!

開工我們就用最簡單 requests 來實(shí)現(xiàn)下吧,首先把常量定義一下:

TOKEN = ‘50a07xxxxxxxxxxxxxxxxxxxxxxxxxf78’ # 請?zhí)鎿Q成自己的TOKEN

REFERER = ‘https://www.google.com/recaptcha/api2/demo’

BASE_URL = ‘http://api.yescaptcha.365world.com.cn’

SITE_KEY = ‘6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-’ # 請?zhí)鎿Q成自己的SITE_KEY

這里我們定義了這么幾個(gè)常量:

TOKEN:就是網(wǎng)站上復(fù)制來的 token

REFERER:就是 Demo 網(wǎng)站的鏈接

API_BASE_URL:就是 YesCaptcha 的 API 網(wǎng)址

SITE_KEY:就是剛才我們找到的 data-sitekey

然后我們定義一個(gè)創(chuàng)建任務(wù)的方法:

def create_task():

url = f“{BASE_URL}/v3/recaptcha/create?token={TOKEN}&siteKey={SITE_KEY}&siteReferer={REFERER}”

try:

response = requests.get(url)

if response.status_code == 200:

data = response.json()

print(‘response data:’, data)

return data.get(‘data’, {}).get(‘taskId’)

except requests.RequestException as e:

print(‘create task failed’, e)

這里就是調(diào) API 來創(chuàng)建任務(wù),沒什么好說的。

如果創(chuàng)建成功之后會得到一個(gè) task_id,接下來我們就需要用這個(gè) task_id 來輪詢查看任務(wù)的狀態(tài),定義如下的這么一個(gè)方法:

def polling_task(task_id):

url = f“{BASE_URL}/v3/recaptcha/status?token={TOKEN}&taskId={task_id}”

count = 0

while count < 120:

try:

response = requests.get(url)

if response.status_code == 200:

data = response.json()

print(‘polling result’, data)

status = data.get(‘data’, {}).get(‘status’)

print(‘status of task’, status)

if status == ‘Success’:

return data.get(‘data’, {}).get(‘response’)

except requests.RequestException as e:

print(‘polling task failed’, e)

finally:

count += 1

time.sleep(1)

這里就是設(shè)置了最長輪詢次數(shù) 120 次,請求的 API 就是查詢?nèi)蝿?wù)狀態(tài)的 API,會得到一個(gè)任務(wù)狀態(tài)的結(jié)果,如果結(jié)果是 Success,那就證明任務(wù)成功了,解析其中的 response 結(jié)果就是驗(yàn)證碼破解之后得到的 token。

兩個(gè)方法調(diào)用一下:

if __name__ == ‘__main__’:

task_id = create_task()

print(‘create task successfully’, task_id)

response = polling_task(task_id)

print(‘get response:’, response[0:40]+‘。。?!?/p>

運(yùn)行結(jié)果類似如下:

response data: {‘status’: 0, ‘msg’: ‘ok’, ‘data’: {‘taskId’: ‘1479436991’}}

create task successfully 1479436991

polling result {‘status’: 0, ‘msg’: ‘ok’, ‘data’: {‘status’: ‘Working’}}

status of task Working

polling result {‘status’: 0, ‘msg’: ‘ok’, ‘data’: {‘status’: ‘Working’}}

status of task Working

polling result {‘status’: 0, ‘msg’: ‘ok’, ‘data’: {‘status’: ‘Working’}}

status of task Working

polling result {‘status’: 0, ‘msg’: ‘ok’, ‘data’: {‘status’: ‘Success’, ‘response’: ‘03AGdBq27-ABqvNmgq96iuprN8Mvzfq6_8noknIed5foLb15oWvWVksq9KesDkDd7dgMMr-

UmqULZduXTWr87scJXl3djhl2btPO721eFAYsVzSk7ftr4uHBdJWonnEemr9dNaFB9qx5pnxr3P24AC7cCfKlOH_XARaN4pvbPNxx_UY5G5fzKUPFDOV14nNkCWl61jwwC0fuwetH1q99r4hBQxyI6XICD3PiHyHJMZ_-

wolcO1R9C90iGQyjzrSMiNqErezO24ODCiKRyX2cVaMwM9plbxDSuyKUVaDHqccz8UrTNNdJ4m2WxKrD9wZDWaSK10Ti1LgsqOWKjKwqBbuyRS_BkSjG6OJdHqJN4bpk_jAcPMO13wXrnHBaXdK4FNDR9-

dUvupHEnr7QZEuNoRxwl8FnO2Fgwzp2sJbGeQkMbSVYWdAalE6fzJ8NwsFJxCdDyeyO817buBtvTJ4C06C1uZ92fpPTeYGJwbbicOuqbGfHNTyiSJeRNmt-5RKz0OUiPJOPnmVKGlWBOqwbwCW1WZt-E-

hH4FEg4En5TITmmPb_feS9dWKUxudn1U0hHk2vV9PerjZLtI7F67KtgmcqRrARPbwnc6KyAi3Hy1hthP92lv4MRIcO2jx0Llvsja-G2nhjZB0ZoJwkb9106pmqldiwlXxky4Dcg7VPStiCYJvhQpRYol7Iq1_ltU2tyhMqsu_Xa8Z6Mr5ykRCLnmlLb8DV8isndrdwp84wo_vPARGRj7Up9ov-

ycb5lDKTf1XRaHiMCa8d2WLy0Pjco9UnsRAPw0FW3MsBJah6ryHUUDho7ffhUUgV1k86ryJym6xbWch1sVC4D5owzrCFn6L-rSLc5SS1pza2zU5LK4kAZCmbXNRffiFrhUY8nP4T1xaR2KMhIaN8HhJQpR8sQh1Azc-QkDy4rwbYmxUrysYGMrAOnmDx9z7tWQXbJE4IgCVMx5wihSiE-T8nbF5y1aJ0Ru9zqg1nZ3GSqsucSnvJA8HV5t9v0QSG5cBC1x5HIceA-2uEGSjwcmYOMw8D_65Dl-d6yVk1YN2FZCgMWY5ewzB1RAFN1BMqKoITQJ64jq3lKATpkc5i7aTA2bRGQyXrbDyMRIrVXKnYMHegfMbDn0l4O81a8vxmevLspKkacVPiqLsAe-

73jAxMvsOqaG7cKxMQO9CY3qbtD55YgN0W4p2jyNSVz3aEpffHRqYyWMsRI5LddLgaZQDoHHgGUhV580PSIdZJ5eKd0gOjxIYxKlr0IgbMWRmsG_TgDNImy1c5oey8ojl-

zWpOQW7bnfq5Z4tZ10_sCTfoOZVLqRuOsqB1OOO9pLRQojLBP0HUiGhRAr_As9EIDu6F9NIQfdAmCaVvavJbi1CZITFjcywP-tBrHsxpwkCXlwl996MK_XyEDuyWnJVGiVSthUMY306tIh1Xxj93W3KQJCzsfJQcjN-

3lGLLeDFddypHyG4yrpRqRHHBNyiNJHgxSk5SaShEhXvByjkepvhrKX3kJssCU04biqqmkrQ49GqBV9OsWIy0nN3OJTx8v05MP8aU8YYkYBF01UbSff4mTfLAhin6iWk84Y074mRbe2MbgFAdU58KnCrwYVxcAR8voZsFxbxNwZXdVeexNx5HlIlSgaAHLWm2kFWmGPPW-ZA7R8Wst-mc7oIKft5iJl8Ea0YFz8oXyVgQk1rd9nDR3xGe5mWL1co0MiW1yvHg’}}

如果其返回的是如上格式的數(shù)據(jù),就代表 ReCAPTCHA 驗(yàn)證碼已經(jīng)識別成功了,其返回的 response 字段的內(nèi)容就是識別的 token,我們直接拿著這個(gè) token 放到表單里面提交就成功了。

那這個(gè) token 怎么來用呢?其實(shí)如果我們用瀏覽器驗(yàn)證驗(yàn)證成功之后,點(diǎn)擊表單提交的時(shí)候,在其表單里面會把一個(gè) name 叫做 g-recaptcha-response 的 textarea 賦值,如果驗(yàn)證成功,它的 value 值就是驗(yàn)證之后得到的 token,這個(gè)會作為表單提交的一部分發(fā)送到服務(wù)器進(jìn)行驗(yàn)證。如果這個(gè)字段校驗(yàn)成功了,那就沒問題了。

所以,如上的過程相當(dāng)于為我們模擬了點(diǎn)選驗(yàn)證碼的過程,其最終得到的這個(gè) token 其實(shí)就是我們應(yīng)該賦值給 name 為 g-recaptcha-response 的內(nèi)容。那么怎么賦值呢?很簡單,用 JavaScript 就好了。我們可以用 JavaScript 選取到這個(gè) textarea,然后直接賦值即可,代碼如下:

document.getElementById(“g-recaptcha-response”).innerHTML=“TOKEN_FROM_YESCAPTCHA”;

注意這里的 TOKEN_FROM_YESCAPTCHA 需要換成剛才我們所得到的 token 值。我們做爬蟲模擬登錄的時(shí)候,假如是用 Selenium、Puppeteer 等軟件,在模擬程序里面,只需要模擬執(zhí)行這段 JavaScript 代碼,就可以成功賦值了。執(zhí)行之后,直接提交表單,我們查看下 Network 請求:

可以看到其就是提交了一個(gè)表單,其中有一個(gè)字段就是 g-recaptcha-response,它會發(fā)送到服務(wù)端進(jìn)行校驗(yàn),校驗(yàn)通過,那就成功了。所以,如果我們借助于 YesCaptcha 得到了這個(gè) token,然后把它賦值到表單的 textarea 里面,表單就會提交,如果 token 有效,就能成功繞過登錄,而不需要我們再去點(diǎn)選驗(yàn)證碼了。最后我們得到如下成功的頁面:

當(dāng)然我們也可以使用 requests 來模擬完成表單提交:

def verify(response):

url = “https://www.google.com/recaptcha/api2/demo”

data = {“g-recaptcha-response”: response}

response = requests.post(url, data=data)

if response.status_code == 200:

return response.text

最后完善一下調(diào)用:

if __name__ == ‘__main__’:

task_id = create_task()

print(‘create task successfully’, task_id)

response = polling_task(task_id)

print(‘get response:’, response[0:40]+‘。。?!?/p>

result = verify(response)

print(result)

運(yùn)行結(jié)果如下:

response data: {‘status’: 0, ‘msg’: ‘ok’, ‘data’: {‘taskId’: ‘1479436991’}}

create task successfully 1479436991

polling result {‘status’: 0, ‘msg’: ‘ok’, ‘data’: {‘status’: ‘Working’}}

status of task Working

polling result {‘status’: 0, ‘msg’: ‘ok’, ‘data’: {‘status’: ‘Working’}}

status of task Working

polling result {‘status’: 0, ‘msg’: ‘ok’, ‘data’: {‘status’: ‘Working’}}

status of task Working

polling result {‘status’: 0, ‘msg’: ‘ok’, ‘data’: {‘status’: ‘Success’, ‘response’: ‘03AGdBq27-ABqvNmgq96iuprN8Mvzfq6_8noknIed5foLb15oWvWVksq9KesDkDd7dgMMr-

UmqULZduXTWr87scJXl3djhl2btPO721eFAYsVzSk7ftr4uHBdJWonnEemr9dNaFB9qx5pnxr3P24AC7cCfKlOH_XARaN4pvbPNxx_UY5G5fzKUPFDOV14nNkCWl61jwwC0fuwetH1q99r4hBQxyI6XICD3PiHyHJMZ_-

wolcO1R9C90iGQyjzrSMiNqErezO24ODCiKRyX2cVaMwM9plbxDSuyKUVaDHqccz8UrTNNdJ4m2WxKrD9wZDWaSK10Ti1LgsqOWKjKwqBbuyRS_BkSjG6OJdHqJN4bpk_jAcPMO13wXrnHBaXdK4FNDR9-

dUvupHEnr7QZEuNoRxwl8FnO2Fgwzp2sJbGeQkMbSVYWdAalE6fzJ8NwsFJxCdDyeyO817buBtvTJ4C06C1uZ92fpPTeYGJwbbicOuqbGfHNTyiSJeRNmt-5RKz0OUiPJOPnmVKGlWBOqwbwCW1WZt-E-

hH4FEg4En5TITmmPb_feS9dWKUxudn1U0hHk2vV9PerjZLtI7F67KtgmcqRrARPbwnc6KyAi3Hy1hthP92lv4MRIcO2jx0Llvsja-G2nhjZB0ZoJwkb9106pmqldiwlXxky4Dcg7VPStiCYJvhQpRYol7Iq1_ltU2tyhMqsu_Xa8Z6Mr5ykRCLnmlLb8DV8isndrdwp84wo_vPARGRj7Up9ov-ycb5lDKTf1XRaHiMCa8d2WLy0Pjco9UnsRAPw0FW3MsBJah6ryHUUDho7ffhUUgV1k86ryJym6xbWch1sVC4D5owzrCFn6L-rSLc5SS1pza2zU5LK4kAZCmbXNRffiFrhUY8nP4T1xaR2KMhIaN8HhJQpR8sQh1Azc-QkDy4rwbYmxUrysYGMrAOnmDx9z7tWQXbJE4IgCVMx5wihSiE-

T8nbF5y1aJ0Ru9zqg1nZ3GSqsucSnvJA8HV5t9v0QSG5cBC1x5HIceA-2uEGSjwcmYOMw8D_65Dl-d6yVk1YN2FZCgMWY5ewzB1RAFN1BMqKoITQJ64jq3lKATpkc5i7aTA2bRGQyXrbDyMRIrVXKnYMHegfMbDn0l4O81a8vxmevLspKkacVPiqLsAe-

73jAxMvsOqaG7cKxMQO9CY3qbtD55YgN0W4p2jyNSVz3aEpffHRqYyWMsRI5LddLgaZQDoHHgGUhV580PSIdZJ5eKd0gOjxIYxKlr0IgbMWRmsG_TgDNImy1c5oey8ojl-

zWpOQW7bnfq5Z4tZ10_sCTfoOZVLqRuOsqB1OOO9pLRQojLBP0HUiGhRAr_As9EIDu6F9NIQfdAmCaVvavJbi1CZITFjcywP-tBrHsxpwkCXlwl996MK_XyEDuyWnJVGiVSthUMY306tIh1Xxj93W3KQJCzsfJQcjN-

3lGLLeDFddypHyG4yrpRqRHHBNyiNJHgxSk5SaShEhXvByjkepvhrKX3kJssCU04biqqmkrQ49GqBV9OsWIy0nN3OJTx8v05MP8aU8YYkYBF01UbSff4mTfLAhin6iWk84Y074mRbe2MbgFAdU58KnCrwYVxcAR8voZsFxbxNwZXdVeexNx5HlIlSgaAHLWm2kFWmGPPW-ZA7R8Wst-mc7oIKft5iJl8Ea0YFz8oXyVgQk1rd9nDR3xGe5mWL1co0MiW1yvHg’}}

status of task Success

get response: 03AGdBq27-ABqvNmgq96iuprN8Mvzfq6_8noknIe...

<!DOCTYPE HTML>ReCAPTCHA demo

href=“https://www.gstatic.com/recaptcha/releases/TbD3vPFlUWKZD-9L4ZxB0HJI/demo__ltr.css” type=“text/css”>

Verification Success... Hooray!

最后就可以發(fā)現(xiàn),模擬提交之后,結(jié)果會有一個(gè) Verification Success... Hooray! 的文字,就代表驗(yàn)證成功了!

至此,我們就成功完成了 ReCAPTCHA 的破解。

上面我們介紹的是 requests 的實(shí)現(xiàn),當(dāng)然使用 Selenium 等工具也可以實(shí)現(xiàn),具體的 Demo 在文檔也寫好了,請大家參考文檔的說明使用即可。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 谷歌
    +關(guān)注

    關(guān)注

    27

    文章

    6080

    瀏覽量

    104382
  • 驗(yàn)證碼
    +關(guān)注

    關(guān)注

    2

    文章

    20

    瀏覽量

    4607

原文標(biāo)題:我又找到了一個(gè)破解谷歌驗(yàn)證碼的新方案!

文章出處:【微信號:gh_3980db2283cd,微信公眾號:開關(guān)電源芯片】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    機(jī)器學(xué)習(xí)中的交叉驗(yàn)證方法

    在機(jī)器學(xué)習(xí)中,交叉驗(yàn)證(Cross-Validation)是種重要的評估方法,它通過將數(shù)據(jù)集分割成多個(gè)部分來評估模型的性能,從而避免過擬合或欠擬合問題,并幫助選擇最優(yōu)的超參數(shù)。本文將詳細(xì)探討幾種
    的頭像 發(fā)表于 07-10 16:08 ?364次閱讀

    使用google-translate和wwe合并后無法使用google-tts怎么解決?

    我打算使用lyrat-mini做一個(gè)使用喚醒詞喚醒然后后續(xù)通過google-sr和google-tts進(jìn)行交流的聊天機(jī)器人,但是當(dāng)我合并了adf的例子中的wwe和google-tran
    發(fā)表于 06-28 06:05

    Google賬戶登錄頁面支持使用Windows Hello驗(yàn)證身份

    谷歌對通行的使用說明描述為:“相比獨(dú)立密碼,通行是更為便捷且保密的選擇。用戶將借此通過指紋、面部識別或設(shè)備屏保(例如PIN)來登錄Google賬戶?!?/div>
    的頭像 發(fā)表于 03-29 13:46 ?372次閱讀

    電腦的pin是什么?PIN和密碼有什么區(qū)別?電腦如何設(shè)置pin?

    電腦的pin是什么?PIN和密碼有什么區(qū)別?電腦如何設(shè)置pin? 電腦的PIN是個(gè)人識別號碼的簡稱,是
    的頭像 發(fā)表于 01-17 11:17 ?2.1w次閱讀

    鴻蒙實(shí)戰(zhàn)基礎(chǔ)(ArkTS)-窗口管理

    不支持該操作。 驗(yàn)證成功跳轉(zhuǎn)到首頁 在這個(gè)章節(jié)中,我們需要完成登錄后界面布局的編寫,并實(shí)現(xiàn)驗(yàn)證成功跳轉(zhuǎn)的功能。主要涉及以下兩個(gè)方面: 校驗(yàn)成功后,銷毀驗(yàn)證碼校驗(yàn)子窗口。 通知登錄主窗口
    發(fā)表于 01-12 17:51

    驗(yàn)證碼滲透最全總結(jié)

    簡單測試方法,就是看到個(gè)登錄框,然后新建打開圖片鏈接,在圖片鏈接中就有機(jī)會看到兩個(gè)參數(shù)值,一個(gè)是 width,
    的頭像 發(fā)表于 01-05 11:33 ?570次閱讀
    <b class='flag-5'>驗(yàn)證碼</b>滲透最全總結(jié)

    UVVM(通用 VHDL 驗(yàn)證方法

    UVVM(通用 VHDL 驗(yàn)證方法) 簡介? UVVM(通用 VHDL 驗(yàn)證方法)是種免費(fèi)的開源方法
    發(fā)表于 01-02 12:59

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-Serverless賬戶驗(yàn)證碼的問題

    在應(yīng)用/元服務(wù)早期使用過程中,-Serverless賬戶驗(yàn)證碼的格式是[AGC][應(yīng)用/元服務(wù)名稱],如下圖。 但是,在最近,[應(yīng)用/元服務(wù)]名稱直接變成了【default】,用戶收到這種驗(yàn)證碼后,心里存有疑慮的,這是哪里配置或者設(shè)置的問題嗎?大家有遇到同樣的問題嗎?如何
    發(fā)表于 12-27 15:55

    基于啟明6M5開發(fā)板的智能門鎖設(shè)計(jì)

    本項(xiàng)目是基于啟明6M5開發(fā)板設(shè)計(jì)個(gè)門鎖系統(tǒng),通過板載ESP8266網(wǎng)絡(luò)將驗(yàn)證碼發(fā)送至云端,用戶通過手機(jī)上接受到的驗(yàn)證碼打開門鎖。項(xiàng)目功能演示如下:
    的頭像 發(fā)表于 12-18 12:30 ?1089次閱讀
    基于啟明6M5開發(fā)板的智能門鎖設(shè)計(jì)

    Google Cloud 線上課堂 | Google Cloud 遷移最佳實(shí)踐

    數(shù)據(jù)中心的數(shù)千個(gè)復(fù)雜工作負(fù)載,將這些應(yīng)用及數(shù)據(jù)遷移到新環(huán)境時(shí)面臨各種挑戰(zhàn):如何降低遷移復(fù)雜性并控制成本?如何保證業(yè)務(wù)連續(xù)性及數(shù)據(jù)安全...... Google Cloud 通過經(jīng)過驗(yàn)證的企業(yè)級工具和
    的頭像 發(fā)表于 11-28 17:45 ?383次閱讀

    KW36 MCU HardFault問題查找和破解方法

    KW36 MCU HardFault問題查找和破解方法
    的頭像 發(fā)表于 10-31 16:57 ?888次閱讀
    KW36 MCU HardFault問題查找和<b class='flag-5'>破解</b><b class='flag-5'>方法</b>

    用于ONRS的正交多相設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《用于ONRS的正交多相設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-25 09:45 ?0次下載
    <b class='flag-5'>用于</b>ONRS的正交多相<b class='flag-5'>碼</b>設(shè)計(jì)

    SpringBoot分布式驗(yàn)證碼登錄方案

    傳統(tǒng)的項(xiàng)目大都是基于session交互的,前后端都在個(gè)項(xiàng)目里面,比如傳統(tǒng)的SSH項(xiàng)目或者些JSP系統(tǒng),當(dāng)前端頁面觸發(fā)到獲取驗(yàn)證碼請求,可以將驗(yàn)證
    的頭像 發(fā)表于 10-12 17:34 ?612次閱讀
    SpringBoot分布式<b class='flag-5'>驗(yàn)證碼</b>登錄方案

    遠(yuǎn)景達(dá)工業(yè)讀器使用方法

    遠(yuǎn)景達(dá)工業(yè)級讀器是種高效、可靠的條形碼掃描設(shè)備,廣泛應(yīng)用于倉儲物流、電子制造業(yè)、汽配等行業(yè)的工業(yè)流水線場景掃應(yīng)用廣泛的領(lǐng)域。作為款工
    的頭像 發(fā)表于 10-08 14:16 ?647次閱讀
    遠(yuǎn)景達(dá)工業(yè)讀<b class='flag-5'>碼</b>器使用<b class='flag-5'>方法</b>

    Java 中驗(yàn)證碼的使用

    今天我們講下在 Java 中驗(yàn)證碼的使用。 驗(yàn)證碼生成 本效果是利用easy-captcha工具包實(shí)現(xiàn),首先需要添加相關(guān)依賴到pom.xml中,代碼如下: com .github.whvcse
    的頭像 發(fā)表于 09-25 11:11 ?799次閱讀
    Java 中<b class='flag-5'>驗(yàn)證碼</b>的使用