一个有意思的html验证码: namesilo验证码
买域名的时候看到的一个验证码,感觉蛮有意思的(https://www.namesilo.com/create_account.php),这个质感看上去就不一样:
查看页面源码,果然这个验证码是用html的标签拼接出来的:
当然这种验证码是比较容易破解的,它是请求这个接口拿到的验证码html数据:
https://www.namesilo.com/captcha_generate.php
返回的数据被url编码了:
%3Cstyle%3E.capc1%7B%20background-color%3A%20%23F8FFFE%3B%20%7D%20.capc2%7B%20background-color%3A%20%23000000%3B%20%7D%3C%2Fstyle%3E%3Ctable%20cellpadding%3D%220%22%20cellspacing%3D%220%22%20class%3D%22captchatable%22%20align%3D%22center%22%3E%3Ctr%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3C%2Ftr%3E%3Ctr%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3C%2Ftr%3E%3Ctr%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3C%2Ftr%3E%3Ctr%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3C%2Ftr%3E%3Ctr%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3C%2Ftr%3E%3Ctr%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3C%2Ftr%3E%3Ctr%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc1%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3Ctd%20class%3D%22capc2%22%20style%3D%22padding%3A0%3B%22%3E%26nbsp%3B%3C%2Ftd%3E%3C%2Ftr%3E%3C%2Ftable%3E
对其url decode并格式化:
<style>.capc1{ background-color: #F8ECFF; } .capc2{ background-color: #030D14; }</style> <table c ellpadding="0" cellspacing="0" class="captchatable" align="center"> <tr> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td></tr> <tr> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td></tr> <tr> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td></tr> <tr> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td></tr> <tr> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td></tr> <tr> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td></tr> <tr> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc1" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td> <td class="capc2" style="padding:0;"> </td></tr> </table>
破解的思路很简单,就是从字符映射回图片即可,多找几个例子观察可以看到,class就两个,capc2是背景色块,capc1是字体色块,然后就比较简单了,将这个captcha table的每个单元格作为一个像素映射到一张图片上:
package cc11001100.misc.crawler.captcha.namesilo; import cc11001100.misc.crawler.utils.HttpUtil; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.commons.io.FileUtils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; /** * @author CC11001100 */ public class NamesiloCrawler { @NoArgsConstructor @AllArgsConstructor @Data public static class Captcha { private String html; private BufferedImage img; } public static Captcha getCaptcha() { String url = "https://www.namesilo.com/captcha_generate.php"; String html = HttpUtil.request(url, null, response -> URLDecoder.decode(response.body(), StandardCharsets.UTF_8)); Document doc = Jsoup.parse(html); Elements rowElt = doc.select(".captchatable tr"); BufferedImage image = new BufferedImage(rowElt.get(0).select("td").size(), rowElt.size(), BufferedImage.TYPE_INT_RGB); for (int y = 0; y < rowElt.size(); y++) { Elements colsElt = rowElt.get(y).select("td"); for (int x = 0; x < colsElt.size(); x++) { boolean isBackground = "capc2".equals(colsElt.get(x).attr("class")); image.setRGB(x, y, isBackground ? Color.WHITE.getRGB() : Color.BLACK.getRGB()); } } return new Captcha(html, image); } public static void saveCaptchaForShow() throws IOException { for (int i = 0; i < 10; i++) { Captcha captcha = getCaptcha(); BufferedImage image = captcha.getImg(); long ts = System.currentTimeMillis(); ImageIO.write(image, "png", new File("data/captcha/namesilo/" + ts + ".png")); FileUtils.writeStringToFile(new File("data/captcha/namesilo/" + ts + ".html"), captcha.getHtml(), "UTF-8"); } } public static void main(String[] args) throws IOException { saveCaptchaForShow(); } }
映射到的图片:
打开保存的html看看映射得是否正确:
接下来的事情就比较简单了,就是最基本的字符型图片验证码破解,因此也不再继续往下演示了。
这种验证码安全性还是比较差的,只是感觉蛮有意思,于是自己实现了一个:
package cc11001100.misc.crawler.captcha.namesilo; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; /** * @author CC11001100 */ public class NamesiloCaptcha { public static boolean[][] draw(String chars, int size) throws IOException { int width = size * chars.length(); BufferedImage image = new BufferedImage(width, size, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); g.setColor(Color.WHITE); g.fillRect(0, 0, image.getWidth(), image.getHeight()); g.setColor(Color.BLACK); g.setFont(new Font("Helvetica", Font.PLAIN, (int) (size * 1.1))); g.drawString(chars, (int) (chars.length() * size * 0.1), (int) (size * 0.9)); // ImageIO.write(image, "png", new File("data/captcha/namesilo/1.png")); boolean[][] result = new boolean[size][width]; for (int y = 0; y < image.getHeight(); y++) { for (int x = 0; x < image.getWidth(); x++) { result[y][x] = image.getRGB(x, y) == Color.BLACK.getRGB(); // System.out.printf("%-3d", image.getRGB(x, y)); } // System.out.println(); } return result; } public static void showWith(String chars, int size, char c) throws IOException { boolean[][] matrix = draw(chars, size); for (int x = 0; x < matrix.length; x++) { StringBuilder line = new StringBuilder(matrix[x].length); for (int y = 0; y < matrix[x].length; y++) { // char t = !matrix[x][y] ? c : ' '; char t = matrix[x][y] ? c : ' '; line.append(t).append(t).append(t); } System.out.println(line.toString()); } } public static void main(String[] args) throws IOException { showWith("ABCD", 10, '☻'); } }
效果:
☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻
或者反色,可能需要离得远一点或者摘下眼镜才能看清楚了:
☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻ ☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻
.