PHPOA!国内首家专业OA办公软件、OA系统、政务办公开源oa系统服务提供商,采用PHP+MYSQL开源语言,一直致力于应用管理软件基层研发,现己推出企业OA、政府OA、集团OA、SAAS版OA等应用平台,详细咨询13807814037
现在论坛购买,只需588元
邗江区政府公文系统:永春县政府
政务OA系统中springboot实现web系统license授权认证型,采用政务办公平台来提升工作效率与服务质量。政务办公平台是一种集成多功能的信息化系统,旨在协调政府各部门之间的工作,并号,并无太大影响,先上代码
代码语言:javascript
复制
private static string getmac() {
try {
enumeration<networkinterface> el = networkinterface
.getnetworkinterfaces();
while (
马斯克强怼的氢燃料电池,能和锂电池一决高下吗?:资本大量流入,特斯拉、蔚来陆续上市等一系列利好消息不断传出,纯电动汽车产业复苏后的姿态可谓是一路狂飙。二.虽然有各国政府保驾护航,但这场仗也并不好打。投入量产后,产能不足问题首先被暴露出。
数据显示,就在刚刚过去的半个月,电动车起火出现12起,皆归因于锂电池。多事之秋,我国政府也陆续发布文件,明确表示将降低对电动汽车的补贴,同时继续维持对氢燃料电池的额度。
为此,广州甚至一次性投入8亿,计划打造“中国氢谷”,专注于氢燃料电池的研发和商用。现在,随着政府主导的落地商用项目出现,这一新能源汽车品类也愈发受资本的关注。
瓦特改进蒸汽机成为了关键节点,人们称它为全面进入蒸汽时代的标志。?不得不承认,在让蒸汽机变小、动力变强的过程中,瓦特的设计起到了关键作用。
各国政府再次大资金投入和推动新能源汽车(主要为电动汽车)的发展,为此,美国还召开了第一次国际电动汽车会议,并展出了一百多辆电动汽车。整个产业开始复苏。
腾讯安全 x geekpwn,一场产业安全攻防大秀 | 1024:继去年披露“残迹重用漏洞”后,腾讯安全玄武实验室今年再次在geekpwn的舞台上,带来了指纹识别领域的最新研究——自动化破解多种类型指纹识别,通过提取用户在日常生活中留存的指纹,自动化进行克隆复原,进而可以破解各种智能手机
这次自动化破解各类指纹设备看上去是指纹的“复制”与“粘贴”,但创下了许多记录:应用了玄武实验室独家自研的指纹破解app及指纹采集框;能够实现在极小面积指纹残影情况下提取复刻有效指纹;首次将雕刻技术应用在系统破解领域
随着物联网的发展和智能家居设备为广大的用户接受,各类设备、流量、账号系统、甚至移动端app,安全边界越来越模糊,生态体系包括第三方授权和集成的纬度也越来越多,导致在各个层面安全问题频繁出现。
并以此为基础,面向政府、金融、泛互联网、大交通等产业互联网转型的重点行业领域,形成了完善的行业安全解决方案,助力政府机构及企业应对新时期的安全威胁与挑战。
- end -腾讯安全正在护航产业安全- 政府机构&综合性国企 - 国家工商总局 | 深圳宝安区政府 | 公安部交科所 | 深圳金融办 | 信通院 | 深圳公安局 | 招商局集团 ……- 金融行业 -
政府采购云服务标准编写完成:“政府采购云服务标准编写基本完成”,在日前召开的“云计算发展与政策论坛第四次高端会议”上,工信部电信研究院标准所互联网中心主任何宝宏透露了这一信息,他表示,为了推动云服务在政府和公用事业机构中的应用,在财政部
、工信部、中央国家机关政府采购中心等单位的支持和指导下,“数据中心联盟”开展了政府采购云服务的标准、采购指南、白皮书的编写工作,目前主要文档的编写工作已完成,为下一步实施政府采购云服务打下了坚实基础。
政府采购云服务的市场空间巨大,当前,越来越多的政府计划或已经采购云服务。何宝宏表示,我国政府信息化采购的市场规模超过500亿元人民币,是当前我国公共云服务市场规模的十余倍。
2014年4月,财政部发布《关于推进和完善服务项目政府采购有关问题的通知》,明确以分类的形式推进服务项目政府采购工作,云服务属于第一类为保障政府部门自身正常运转需要向社会购买的服务。
何宝宏表示,为了尽快推动云服务在政府的应用,相关部委正在推动《政府采购云服务指导意见》的出台,“数据中心联盟”已经完成了政府采购云服务基础文档和标准——《政府采购云服务指南》的编写。
只需一个小程序,上百家公司快递轻松查、寄 | 国家队 #12:小程序体验师:梁爽
在微信小程序的服务范围中,「政务民生」是一个不容忽视的大类。这预示着,未来只要用手机,就能处理大量公关事务,享受公共服务。
目前,有哪些「国家队」小程序入场了呢?
这里是「国家队」栏目的第 11 期。
在贸易活动越发活跃,生产经营趋于高效率和快节奏的今天,快递、物流的地位越来越重要。而我们日常生活中的购物、邮寄、送礼等,对快递、物流的依赖更甚。
今天,知晓程序(微信号 zxcx0101)为大家介绍的这款小程序,就是由国家邮政局邮政业安全中心开发的「安易递快递」,它能帮助你更方便地寄快递、查快递,整理快件信息。
不但可以自己挑选喜欢的快递公司,还省去了自己去快递公司填单子的时间,真正实现了「门对门」的传送。
?
查快递:物流实时看,寄件更方便
想知道快递到哪了?
而现在,只要在这款小程序上实名认证一次,就可以生成专属的实名认证二维码,寄件时出示给快递员扫一扫,就可以完成实名认证、方便好操作。邮政局安全中心开发的小程序,放心填写,也不用担心自己的信息安全。
?
邗江区政府公文系统:永春县政府政务OA系统中springboot实现web系统license授权认证公平台的重要性以及其对政府工作的影响。首先,政务办公平台的建立有助于提升政府工作效率。传统的行政工作常常面临繁琐的文件处理、信息共享不畅等问题,导致工作效率低下。而政务办公平台通过整合各部门的信息资源和业务流程,实现了信息共享与协同办公。政府工作人员可以通过平台快速查询和处理事务,节省了大量的时间和精力。此外,平台还提供了自动化的流程管理和监控功能,有效减少了人为错误和延误,提高了工作的准确性和时效性。其次,政务办公平台的推广也能够提升政府的服务质量。政府是为民众提供服务的机构,提高服务质量是其责任所在。政务办公平台可以实现政府与民众之间的多渠道互动和信息共享。民众可以通过平台在线办理各类事务,避免了繁琐的排队和提交纸质材料的过程。此外,平台还提供了在线咨询和投诉功能,方便民众提出问题和反馈大家好,又见面了,我是你们的朋友全栈君。
在我们做系统级框架的时候,我们要一定程度上考虑系统的使用版权,不能随便一个人拿去在任何环境都能用,所以我们需要给我们系统做一个授权认证机制,只有上传了我们下发的lic文件并验证通过,才能正常使用,下面就开始一步一步实现这个功能
1.生成机器码
我们首先要做的就是对软件部署的环境的唯一性进行限制,这里使用的是macadderss,当然你也可以换成cpu序列编号,并无太大影响,先上代码
代码语言:javascript
复制
private static string getmac() {
try {
enumeration<networkinterface> el = networkinterface
.getnetworkinterfaces();
while (el.hasmoreelements()) {
byte[] mac = el.nextelement().gethardwareaddress();
if (mac == null)
continue;
string hexstr = bytestohexstring(mac);
return getsplitstring(hexstr, "-", 2).touppercase();
}
} catch (exception exception) {
exception.printstacktrace();
}
return null;
}
public static string getmachinecode() throws exception{
set<string> result = new hashset<>();
string mac = getmac();
result.add(mac);
properties props = system.getproperties();
string javaversion = props.getproperty("java.version");
result.add(javaversion);
string javavmversion = props.getproperty("java.vm.version");
result.add(javavmversion);
string osversion = props.getproperty("os.version");
result.add(osversion);
string code = encrpt.getmd5code(result.tostring());
return getsplitstring(code, "-", 4);
}
这里进行的操作是取出机器码,与java版本,jvm,操作系统参数进行混合,并进行md5操作
2.进行lic文件的生成
这是我生成证书与进行授权证书的界面,可以看到授权证书主要包含三个要素,机器码,是否永久有效标识,证书时效,我们会将这些数据写入文本中并进行加密处理,看下生成证书的代码
代码语言:javascript
复制
public static void getlicense(string isnotimelimit, string licenselimit, string machinecode, string licensepath, string priavatekeypath) throws exception{
string[] liccontent = {
"licenseid=yanpeng19940119@gmail.com",
"licensename=yblog使用证书",
messageformat.format("licensetype={0}",isnotimelimit),
messageformat.format("expireday={0}",licenselimit), //日期采用yyyy-mm-dd日期格式
messageformat.format("machinecode={0}",machinecode),
""
};
//将lic内容进行混合签名并写入内容
stringbuilder sign = new stringbuilder();
for(string item:liccontent){
sign.append(item+"yblog");
}
liccontent[5] = messageformat.format("licensesign={0}",encrpt.getmd5code(sign.tostring()));
fileutil.createfileandwritelines(licensepath,liccontent);
//将写入的内容整体加密替换
string filecontent =fileutil.readfiletostring(licensepath);
string encrptfilecontent = encrpt.encriptwrsa_pri(filecontent,priavatekeypath);
file file = new file(licensepath);
file.delete();
fileutil.createfile(licensepath,encrptfilecontent);
}
这里我们是将一些信息与特定标识进行拼接然后加密,使用的是rsa加密,我们使用私钥加密公钥解密,保证验证的开放性与生成证书的私密性,密钥可以使用java自带的keytool工具进行生成,教程地址:http://note.youdao.com/noteshare?id=09e2bfc902b21a335a4505f7946a45c9,在lic文件最后我们加上一个licensesign参数,对其他信息进行一次加密,防止信息被篡改,生成文件后再对文本进行整体加密
这里生成密钥的长度为2048而非1024,所以解密块长度为256,这里需要注意下,公钥加密方法为,为了方便大家,这里提供下具体加密代码
代码语言:javascript
复制
private static final int max_encrypt_block = 117;
private static final int max_decrypt_block=256;
public static string encriptwrsa_pri(string data,string path) throws exception{
string encryptdata ="";
fileinputstream in = new fileinputstream(path);
keystore ks = keystore.getinstance("jks");// jks: java keystorejks,可以有多种类型
ks.load(in, "123".tochararray());
in.close();
string alias = "yblogkey"; // 记录的别名
string pswd = "123"; // 记录的访问密码
java.security.cert.certificate cert = ks.getcertificate(alias);
//获取私钥
privatekey privatekey = (privatekey) ks.getkey(alias, pswd.tochararray());
//私钥加密
cipher cipher = cipher.getinstance("rsa");
securerandom random = new securerandom();
cipher.init(cipher.encrypt_mode, privatekey, random);
try {
// cipher cipher = cipher.getinstance("rsa");
// cipher.init(cipher.encrypt_mode, publickey);
int length = data.getbytes().length;
int offset = 0;
byte[] cache;
bytearrayoutputstream outstream = new bytearrayoutputstream();
int i = 0;
while(length - offset > 0){
if(length - offset > max_encrypt_block){
cache = cipher.dofinal(data.getbytes(), offset, max_encrypt_block);
}else{
cache = cipher.dofinal(data.getbytes(), offset, length - offset);
}
outstream.write(cache, 0, cache.length);
i++;
offset = i * max_encrypt_block;
}
return encode.encode(outstream.tobytearray());
} catch (illegalblocksizeexception e) {
e.printstacktrace();
} catch (badpaddingexception e) {
e.printstacktrace();
}
return encryptdata;
}
public static string decriptwithrsa_pub(string data,string path) throws exception{
x509certificate x509certificate = (x509certificate) getcertificate(path);
// 获得公钥
publickey publickey = x509certificate.getpublickey();
cipher cipher = cipher.getinstance("rsa");
securerandom random = new securerandom();
byte[] bencrypt = decoder.decodebuffer(data);
//公钥解密
cipher.init(cipher.decrypt_mode, publickey, random);
string decryptdata = "";
// byte[] plaindata = cipher.dofinal(bencrypt);
// system.out.println("11111:"+new string(plaindata));
int inputlen = bencrypt.length;
bytearrayoutputstream out = new bytearrayoutputstream();
int offset = 0;
byte[] cache;
int i = 0;
// 对数据分段解密
while (inputlen - offset > 0) {
if (inputlen - offset > max_decrypt_block) {
cache = cipher.dofinal(bencrypt, offset, max_decrypt_block);
} else {
cache = cipher.dofinal(bencrypt, offset, inputlen - offset);
}
out.write(cache, 0, cache.length);
i++;
offset = i * max_decrypt_block;
}
byte[] decrypteddata = out.tobytearray();
out.close();
return new string(decrypteddata);
}
3.验证lic
我们会在系统中注册一个拦截器,未通过系统授权认证会自动跳转到lic文件上传界面,springboot接收文件与常规java有一些不同,使用的multipartfile对象,会获取到上传文件的数组,进行操作,看下保存上传lic文件代码
代码语言:javascript
复制
@requestmapping(value="/login/licenseauth",method= requestmethod.post)
@responsebody
public map<object,object> licenseauth(multiparthttpservletrequest multireq){
map<object,object> map = new hashmap<object,object>();
try {
string savepath = resourceutils.geturl("src/main/resources/static/lic").getpath();
multipartfile file = multireq.getfile("file");
string filename = file.getoriginalfilename();
file uploadfile = new file(savepath + "\" + filename);
if (!uploadfile.exists()){
//获取item中的上传文件的输入流
inputstream in = file.getinputstream();
//创建一个文件输出流
fileoutputstream out = new fileoutputstream(savepath + "\" + filename);
//创建一个缓冲区
byte buffer[] = new byte[1024];
//判断输入流中的数据是否已经读完的标识
int len = 0;
//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
while((len=in.read(buffer))>0){
//使用fileoutputstream输出流将缓冲区的数据写入到指定的目录(savepath + "\" + filename)当中
out.write(buffer, 0, len);
}
//关闭输入流
in.close();
//关闭输出流
out.close();
}
map.put("executestatus","1");
}catch (exception e){
e.printstacktrace();
map.put("executestatus","0");
}
return map;
}
有了上传文件,我们就可以通过系统内置的公钥对lic文件的机器码,授权时间进行验证,确定是否能正常访问系统
代码语言:javascript
复制
public static boolean authlicense() throws exception{
boolean isauth = false;
string pubkpath = resourceutils.geturl("src/main/resources/static/lic/").getpath()+"yblog.crt";
string licpath = resourceutils.geturl("src/main/resources/static/lic/").getpath();
file lic = new file(licpath);
string[] filelist = lic.list();
if (filelist.length>0){
for (int i = 0; i < filelist.length; i++) {
if (filelist[i].contains(".lic")){
file readfile = new file(licpath + filelist[i]);
if (readfile.isfile()) {
string liccontent = fileutil.readfiletostring(readfile);
string decriptliccontent = encrpt.decriptwithrsa_pub(liccontent,pubkpath);
hashmap<string, string> props = gendatafromarraybyte(decriptliccontent.getbytes());
string licenseid = props.get("licenseid");
string licensename= props.get("licensename");
string licensetype = props.get("licensetype");
string liclimit = props.get("expireday");
string machinecode = props.get("machinecode");
string lincensesign = props.get("licensesign");
//验证签名
string allinfogroup = "licenseid="+licenseid+"yblog"+"licensename="+licensename+"yblog"+
"licensetype="+licensetype+"yblog"+"expireday="+liclimit+"yblog"+"machinecode="+machinecode+"yblogyblog";
if (lincensesign.equals(encrpt.getmd5code(allinfogroup))){
//验证机器码
if (getmachinecode().equals(machinecode)){
simpledateformat sdf=new simpledateformat("yyyy-mm-dd");
date bt=new date();
date et=sdf.parse(liclimit);
//验证时间
if(bt.compareto(et)<=0){
isauth = true;
system.out.println("注册文件:"+filelist[i]+",已通过验证");
break;
}else{
system.out.println("证书过期");
}
}else{
system.out.println("机器码不一致");
}
}else{
system.out.println("签名不一致");
}
}
}
}
}else{
system.out.println("未上传证书");
}
return isauth;
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164390.html原文链接:https://javaforall.cn
即将发布!《2017年网络空间安全报告》:当前我国重点行业网站如政务、教育、事业单位等仍存在基础性安全隐患其中僵尸网站、域名劫持傀儡服务器等问题较为严重▽▽▽ 这一年,您知道的网络空间安全是什么?哪些行业是网络攻击的重灾区?
报告数据摘读2017年安恒信息风暴共收集到来自177个国家的攻击源数据,以及国内34个省份、自治区、直辖市、特别行政区的受攻击网站数据,攻击数据量达到8.46亿。
图:漏洞类型分布情况受攻击区域集中在沿海省市(分布在浙江、江苏、广东、福建、山东等省)以及政治、经济中心(北京、上海):?图:攻击区域分布根据行业攻击趋势来看,教育和政府行业成了受攻击的重灾区:?
迄今为止,“反g黑客”组织已对国内的政务、教育、企业等重要行业系统进行了大量攻击,具有较强的组织性和周期性。
图:2017年反g黑客攻击时段统计物联网设备成为威胁新源头之一?对全球物联网设备漏洞进行扫描分析,弱口令问题分布如图所示:?
腾讯入局物业管理,欲改造传统服务?:“腾讯海纳”将通过云计算、大数据、人工智能等技术连接物业、居民、政府、媒体和社区服务提供方,形成“互联网+社区”一站式解决方案。?
但与此同时,城市社区服务的智慧化却相对发展滞后,尤其是智慧社区的主要载体——物业管理服务。
据报道了解,通过“腾讯海纳”,物业管理公司将可为业主提供智能门禁、智能停车场、线上投诉报修、在线缴纳水电费等“互联网+”服务。
、物业、腾讯的四方共赢局面。
腾讯海纳社区主要功能:⊙基于微信的消息推送集成微信公众平台功能并加强各类消息推送,不再为各类通知,催缴物业费跑断腿⊙安全简便的信息管理住户信息,员工信息,楼栋信息,外部人员信息集中式管理,一目了然⊙完善的物业基础服务多次优化的快捷报修
中兴智能视觉大数据说:原来今年的高考也要看脸了啊!:中兴智能视觉大数据报道:再过一些时间,2018年高考将正式拉开大幕,本次高考广东肇庆中学,作为全省两个第一批试点的考点之一,将在今年高考中首次使用人脸识别技术,有关人脸识别的应用越来越常态化了。
肇庆市教育局和广东肇庆中学 高度重视,在5.31至6.1举行的高考仿真考试中,将会测试使用人脸识别技术来验证考生身份,市教育局、广东肇庆中学,还计划于6月5日考务培训时再次测试人脸识别系统,人脸识别有何优势
通过人脸识别技术,在校门出入口 、学生宿舍入口、教学楼等重点区域布置人脸识别摄像机,可以实时检测和掌握出入人员的身份信息。
在科技昌盛的大环境以及政府的支持下,我国的人工智能公司推动人工智能技术与教育行业的发展具有重要的变革意义。
中兴智能视觉大数据愿意将人脸识别在众多行业的成功应用经验推广至教育行业,通过人脸识别解决方案的完善和更多实践样板的树立打造,让更多教育机构切实感受人脸识别带来的安全和便捷。
云栖大会上,钱塘大数据被省长点名啦!:智慧城市惠民生,开放共享政府数据提升治理能力。信息经济正成为引领浙江经济新常态的新动能。?▲2016年5月31日,钱塘数据——国内首个“工业大数据”应用和交易平台正式上线。
车省长强调,大数据时代,城市与区域的势能在转换,浙江有信心、有理由打造世界级的科创高地。当今全球正进入“去体量化”,科技的权重开始远远大于资本、土地、劳动力等生产要素。
同时,全球也步入“连接大于拥有”时代,哪个城市与区域的连接能力强、获得的资源多,发展机会就越大。这给浙江经济一个弯道超车的机会。
浙江将深入推进杭州国家自主创新示范区、中国(杭州)跨境电子商务综合试验区建设,加快杭州城西科创大走廊和钱塘江金融港湾建设等,努力打造世界级的科技创新高地。?
浙江将进一步优化制度供给与服务方式,为创业者提供肥沃的土壤、充足的阳光雨露,让创业创新的门槛更低、成本最小、环境最优,让大家寻找到创业的幸福感,实现人生价值。
转载请注明出处,本站网址:
http://www.831209.com.cn/news_1935.html