在gae中,图像的操作受到很大的限制, 想要在上面实现图片验证码,个人研究,难,只能另辟方法。
第一个方法:(不可行)
python的pil不支持,本想在gae上同时使用python和java,然后在java中生成验证码,但找不到设置方法,跟着去试了一下java平台,BufferImage已禁用,再找java中图片处理的其他几个类,一样,都是禁用,没戏。
第二个方法:(可行,但麻烦,不稳定)
找其它的平台生成验证码,然后在gae中用urlfetch,但无论是提供验证码服务的网站,还是自已在godaddy等有域名即有空间的自有平台中的提供验证码服务,总是要兼顾两者,如果那边down机或墙了,gae这边也不行了。
第三个方法:(可行,但安全性差,易攻破)
在gae服务中的静态文件 [0-9].gif 共10个图片,[a-zA-Z0-9]共60多个数,每9个或10个数的组合有很多个,然后提取出每个组合中至少有4个不同的组合共10个, 其中每个组合对应一个数字,这样就行了。
如 组合 aAbBcCdD8 和 aAbEefFH7 最多只有3个字是有交集的,那么通过定义app.yaml中的url影谢就可以不同的组合对应不同的图,如
- url: /static/[oGuHiIks3]{4}.gif 如 oss3.gif 和 Guuu.gif都是指向 v2.gif 的
static_files: static/v2.gif
upload: static/v2.gif
然后上传到gae上,虽然复杂一点,但都是在同一服务器,一般没什么价值的站,别人也不会专门去研究的你的组合对应那个数字的图片,主要是用来防止垃圾评论等的。
第三个方法是我用的方法,和我上篇的gae python中使用session该文章,效果都可以在http://myiou1314.appspot.com 看到。




















