SSH 验证码

package com.brgroup.util;

import grade.entity.Grade;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class ImpFactory {

public static Grade addImp(HttpServletRequest request) {
DiskFileItemFactory disk = new DiskFileItemFactory();
ServletFileUpload s = new ServletFileUpload(disk);
s.setSizeMax(1024 * 400);// 你可以上传的最大图片是多少
Grade grade = new Grade();
try {
List<FileItem> list = s.parseRequest(request);
for (FileItem item : list) {
if (!item.isFormField()) {// 判断你的input的类型是不是file,如果不是file为treu,反之为false
String path = "D:\\用户目录\\我的文档\\Tencent Files\\753680745\\FileRecv\\apache-tomcat-6.0.20\\apache-tomcat-6.0.20\\webapps\\student\\img";
String fileName = "imge/" + imgName() + "."
+ imgSuffix(item.getName());
File file = new File(path + "\\" + fileName);
if (!file.exists()) {// 这个文件是否存在
item.write(file);
}
grade.setGradeLoge(fileName);
}else{
String number = item.getFieldName();
String value = item.getString();

if(number.equals("id")&&value.length()>0)
grade.setId(Integer.parseInt(new String(value.getBytes("ISO8859-1"),"utf-8")));
else if(item.getFieldName().equals("gradeName"))
grade.setGradeName(new String(value.getBytes("ISO8859-1"),"utf-8"));
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return grade;
}

public static String imgName() {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
int a = (int) (Math.random() * 1000);
return format.format(new Date()) + a;
}

public static String imgSuffix(String fileName) {
String a[] = fileName.split("\\.");
return a[1];
}

public static void main(String[] args) {
System.out.println(imgSuffix("123.png"));
}

}

时间: 2024-10-04 06:07:54

SSH 验证码的相关文章

Linux使用ssh动态验证码登录机器

ssh动态验证码登录机器 Google Authenticator是一个动态验证码程序,兼容各种智能手机平板设备,可以用来做各种帐号的二次验证,增加帐号的安全性.SSH是Linux系统的最重要防线之一,为了防止密码泄露或者被爆破,可以使用Google Authenticator来做二次验证,使用方法也很简单 谷歌身份验证器生成的是动态验证码,默认30秒更新.修改配置,SSH登录必须在输入密码之前输入动态验证码.即使账号和密码泄露,验证码输入错误,仍然无法登录.苹果或者安卓手机端可以安装身份验证器

IDEA+java通过SSH来进行分析日志,实现UI自动化动态验证码登录

在我写自动化脚本的时候经验药真实发送验证码才能往下进行UI自动化 思路:验证码会显示在哪些地方,手机短信?数据库存储?日志? 完整代码如下: package guanyu.tools; import com.jcraft.jsch.*;//import jdk.nashorn.tools.Shell;import java.awt.*;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.A

SSH项目中怎么玩验证码

大致原理与之前servlet一样,生成随机数,产生干扰线,画到图片上,保存到session中. 用的时候专门写一个验证码的action,在需要用到的界面调该action就好. step1: CheckImgAction: public class CheckImgAction extends ActionSupport{ public String execute() throws Exception { int width = 120; int height = 30; // 步骤一 绘制一张

ssh 与 Telnet 的区别

简单来书,ssh 和 telnet 是实现相同的功能 , ssh中 数据是经过加密的,是安全的 , 而 Telnet是明文传输的ssh 是加密的,基于 SSL .telnet 是明码传输的,发送的数据被监听后不需要解密就能看到内容. 两个不通用,现在不建议使用 telnet .因为现在网络监听手段十分的发达.而且中间人攻击也很容易. ==以下为引用==安全套接层(Secure Sockets Layer,SSL)及其继任者传输层安全(Transport Layer Security,TLS)是为

centos 6 SSH配置Google Authentication 验证

创建工作目录: mkdir google-authentication 1. 安装二维码生成依赖 #wget http://fukuchi.org/works/qrencode/qrencode-3.3.1.tar.gz # tar xf qrencode-3.3.1.tar.gz #cd qrencode-3.3.1 #./configure --prefix=/usr && make && make install 2. 安装Google-authenticator #

SSH协议详解

转发的http://blog.csdn.net/macrossdzh/article/details/5691924 很透彻啊,学习了 一.什么是SSH SSH是英文Secure Shell的简写形式.通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗.使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度.SSH有很多功能,它既可以代替Telnet,又可以为FTP.Pop.甚至为PPP

Linux 利用Google Authenticator实现ssh登录双因素认证

1.介绍 双因素认证:双因素身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起才能发挥作用的身份认证系统.双因素认证是一种采用时间同步技术的系统,采用了基于时间.事件和密钥三变量而产生的一次性密码来代替传统的静态密码.每个动态密码卡都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时动态密码卡与服务器分别根据同样的密钥,同样的随机参数(时间.事件)和同样的算法计算了认证的动态密码,从而确保密码的一致性,从而实现了用户的认证.因每次认证时的随机参数不同,所以每次产生的动态密码也不同

ssh 登录

一.ssh登录过程 在实际开发中,经常使用ssh进行远程登录.ssh 登录到远程主机的过程包括: 版本号协商 密钥和算法协商 认证 交互 1.1 版本号协商阶段 (1) 服务端打开22端口(也可以为了避免攻击,重定义ssh端口),等待客户连接 (2) 客户端向服务端发起TCP连接,连接建立后,服务端向客户端发送第一个报文,包括版本标志字符串,格式为"协议版本号 次协议版本号 软件版本号". (3) 客户端收到报文后进行解析,如果服务端的协议版本号比自己的低,则使用服务端的协议版本号,否

Linux实现ssh双因子登陆,with Google Authenticator

之前听别人说,用了XX家的云,安装一个手机APP,每次登陆需要先验证动态密码,再输入密码,安全性大大提高,实现了传说中的双因子登陆,当时觉得好洋气. 因为之前关注的角度不同,我更多的是从登陆统计以及报警来观察,毕竟让你直接登陆的堡垒机或者跳板机并不多,是我太out,听说过双因子登陆却一直没有去行动,于是心血来潮详细百度谷歌了一些文章,更多的都是通过添加第三方模块增加二次验证,于是几个较为出名的就来了:谷歌认证google-authenticator,freeotp,洋葱令牌,对比了一下名字,发现