我有一个问题如下-有一个jsp页面register.jsp,它的表单如下-
<form:form modelAttribute="user" action="Register" class="form-horizontal col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1 col-sm-12 col-xs-12" method="POST" role="form" autocomplete="off">
<fieldset>
<legend>Basic Info</legend>
<div class="form-group">
<form:label path="firstName" class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4">First Name <b>*</b></form:label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<form:input path="firstName" type="text" name="firstName" id="firstName" class="capitalize form-control required" required="true" />
<form:errors path="firstName" cssClass="error" element="label"></form:errors>
</div>
</div>
<div class="form-group">
<form:label path="secondName" class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4">Middle Name</form:label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<form:input path="secondName" type="text" name="secondName" id="secondName" class="capitalize form-control" />
<form:errors path="secondName" cssClass="error" element="label"></form:errors>
</div>
</div>
<div class="form-group">
<form:label path="lastName" class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4">Last Name <b>*</b></form:label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<form:input type="text" name="lastName" path="lastName" id="lastName" class="capitalize form-control" required="true" />
<form:errors path="lastName" cssClass="error" element="label"></form:errors>
</div>
</div>
<div class="form-group">
<form:label path="email" class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4">Email <b>*</b></form:label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<form:input type="email" path="email" name="email" class="form-control" required="true" />
<form:errors path="email" cssClass="error" element="label"></form:errors>
</div>
</div>
<div class="form-group">
<form:label path="dob" class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4">DOB <b>*</b></form:label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<form:input path="dob" type="date" name="dob" class="dob form-control" required="true" />
<form:errors path="dob" cssClass="error" element="label"></form:errors>
</div>
</div>
<c:set var="converter" value="${converter}"></c:set>
<div class="form-group">
<form:label path="city.state.country.id" class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4">Country <b>*</b></form:label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<form:select path="city.state.country.id" name="country" class="form-control" required="true">
<c:forEach items="${countries}" var="country">
<option value="${converter.encryptAnID(country.id)}"><c:out value="${country.name}"></c:out></option>
</c:forEach>
</form:select>
<form:errors path="city.state.country.id" cssClass="error" element="label"></form:errors>
</div>
</div>
<div class="form-group">
<form:label path="city.state" class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4">State <b>*</b></form:label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<form:select path="city.state.id" name="city" class="form-control" required="true">
<c:forEach items="${states}" var="state">
<form:option value="${converter.encryptAnID(state.id)}"><c:out value="${state.name}"></c:out></form:option>
</c:forEach>
</form:select>
<form:errors path="city.state.id" cssClass="error" element="label"></form:errors>
</div>
</div>
<div class="form-group">
<form:label path="city.name" class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4">City <b>*</b></form:label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<form:input path="city.name" type="text" name="city" id="city" class="capitalize form-control" required="true"/>
<form:errors path="city.name" cssClass="error" element="label"></form:errors>
</div>
</div>
<div class="form-group">
<form:label path="zip" class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4">Pincode/ZIP <b>*</b></form:label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<form:input path="zip" type="text" name="zip" id="zip" class="form-control" required="true"/>
<form:errors path="zip" cssClass="error" element="label"></form:errors>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4">Solve equation </label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<img src="<c:url value='/Captcha'></c:url>">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-4 col-md-4 col-sm-4 col-xs-4" for="captcha">Solution <b>*</b></label>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
<input name="captcha" id="captcha" class="form-control" type="text" value="" required="true"/>
</div>
</div>
<div class="form-group">
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8 col-lg-offset-4 col-md-offset-4 col-sm-offset-4 col-xs-offset-4">
<button type="submit" class="btn btn-primary">Register</button>
<button type="reset" class="btn btn-default">Reset</button>
</div>
</div>
</fieldset>
</form:form>
正如您所看到的,我正在jsp上加密国家和州的id,现在处理这个请求的控制器方法如下所示-
@RequestMapping(value="/Register",method= RequestMethod.POST)
public String register(@ModelAttribute("user") @Valid User user, BindingResult bindingResult){
if(bindingResult.hasErrors()){
System.out.println("Errors detected");
List<ObjectError> errors = bindingResult.getAllErrors();
for(ObjectError error:errors){
System.out.println(error.toString());
}
return "Register";
}else{
return "redirect:/Home";
}
}
用户bean有一个名为country的属性,它引用对象country类这里是我的country类-
@Entity
@Table(name="country"
,catalog="tutor"
)
public class Country implements java.io.Serializable {
private Integer id;
private String name;
private String code;
private List<State> states = new ArrayList<State>(0);
public Country() {
}
public Country(String name, String code) {
this.name = name;
this.code = code;
}
public Country(String name, String code, List<State> states) {
this.name = name;
this.code = code;
this.states = states;
}
@Id @GeneratedValue(strategy=IDENTITY)
@Column(name="id", unique=true, nullable=false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name="name", nullable=false, length=45)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name="code", nullable=false, length=2)
public String getCode() {
return this.code;
}
public void setCode(String code) {
this.code = code;
}
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="country")
public List<State> getStates() {
return this.states;
}
public void setStates(List<State> states) {
this.states = states;
}
}
提交表单后,我发现了这个错误-
无法将类型java.lang.String的属性值转换为属性City.State.country.id所需的类型java.lang.Integer;嵌套异常为java.lang.NumberFormatException:输入字符串:“204169936916065690991063869295677385346323054608”
问题是国家的obvoius id为整数,但加密后选项的值为字符串,无法转换为整数。那么,是否有任何方法可以指示controller或bean使用定义的方法解密这个值,该方法在验证之前将接受string参数并返回integer。
使用来自Spring的格式化程序和/或转换器,而不是滚动您自己的。用于呈现和解析结果。
这是可能的还是加密必须共享和使用相同的密钥? 主要目的就是这样。 我将有两个客户端可以发送和接收加密数据到彼此。
问题内容: 我想将加密的密码存储在Java文件中。我在使用 javax.crypto 的解决方案中看到了一个问题,但是问题在于密钥是动态生成的,并且是随机的。 然后将在运行时在Java程序中获取并解密该密码。鉴于我要在文件中存储一个已经加密的密码-解密时我想要正确的文本。 有没有办法告诉javax.crypto方法: 可以将其替换为基于某个私钥生成的我自己的密钥吗? 谁能指出一些有关执行此操作的资
问题内容: 我想用Java加密和解密密码,然后以加密形式存储到数据库中。如果它是开源的,那就太好了。有什么建议/建议吗? 问题答案: 编辑 :这个答案是旧的。现在 不建议 使用MD5,因为它很容易被破坏。 我想象中的MD5必须足够好?您可以使用MessageDigest实现它。 这里还列出了其他算法。 如果确实需要,这是它的第三方版本: Fast MD5
我想得到的是 使用libnail加密密码salt 我有一个列表的盐,我想用它来加密/解密我的密码。当我加密密码时,我得到一个哈希返回,这样一个似乎可以工作,但在解密时,我总是得到假返回值。 我是否使用了错误的方法对libnaude进行加密/解密,还是完全朝着错误的方向行驶? 我的加密/解密源: 我感谢任何帮助! 多姆
问题内容: 我想生成rsa密钥对(公共和私有),然后将它们用于AES加密和解密。例如,用于加密的公共密钥和用于解密的私有密钥。我为此编写了一个简单的代码,但是问题是当我运行时这段代码我得到这个错误: 我该如何解决这个问题?我的加密代码如下: 问题答案: 如评论中所建议,我搜索了“混合密码术”。这个例子解决了我的问题。
问题内容: 按照本教程,我将使用flexiprovider基于椭圆曲线的不对称算法进行加密/解密。稍作修改,我将出于个人目的将公共密钥和私有密钥转换为Base64(例如存储到数据库或文本文件中)。但是我的代码不是在android设备中运行的,而在Java设备中运行的是dekstop,不是Java中的android和dekstop版本,我认为这是一个很大的差异(只是为了清理我的问题信息)。好的,在我