首页 文章 精选 留言 我的

精选列表

搜索[Flowable流程审批],共10000篇文章
优秀的个人博客,低调大师

阿里云服务器怎么用APP来备案操作流程

阿里云APP端申请备案是现在比较流行的备案方法,方便快捷,适合新手使用。 阿里云2000券免费领取(阿里云券的作用:购买阿里云产品,最后支付结算的时候,阿里云券可抵扣一部分费用。 要注意的是,目前支持首次备案和新增网站(原备案不在阿里云)两种备案场景。暂时不支持新增网站(原备案在阿里云)、接入备案、变更备案等其他备案场景,其他的备案场景都可在PC端操作。 使用阿里云APP端申请备案时,备案申请操作步骤如下: 1、登录阿里云APP,进入APP备案操作入口。 如果在APP端备案时,系统提示前往PC端进行操作,那么你当前的场景就只能在PC端操作了。 2、填写信息及备案接入产品验证备案类型 填写主办单位信息和网站等信息,根据备案类型上传主办单位的证件材料,并进行真实性核验。 3、选择买好的服务器,进行产品验证。 阿里云2000券免费领取(阿里云券的作用:购买阿里云产品,最后支付结算的时候,阿里云券可抵扣一部分费用。 说明:如果无法选择服务器实例,可能是因为无可用备案服务号,建议更换有可用备案服务号的服务器。更多可能无法选择实例的可能原因及 系统会根据填写信息自动判定要办理的备案类型。 4、填写主体信息和网站信息 填写网站信息以及办理备案的个人或者单位的真实信息。上传主体负责人和网站负责人的证件,并进行网站负责人的真实性核验。 5、上传资料 上传证件照片或证件彩色扫描件。 6、信息核验 在提交备案申请订单前,请您在此步骤中仔细确认您的主体、网站、接入等备案信息是否正确,确认无误后提交备案订单。 说明:如果使用PC端进行备案申请,在移动端完成资料上传和真实性核验后,您可在移动端继续信息核验。如果您的登录账号无法登录阿里云APP,就要去PC端继续操作信息核验。 7、备案初审 提交备案申请后,阿里云备案审核专员会对备案信息初步审核。 8、管局审核初审完成后,阿里云备案审核专员会将备案申请转交至对应管局处做最终的管局审核。管局审核通过后您的备案即已完成,审核结果会发送至短信、邮箱。 9、不管阿里审核,还是管局审核期间,在工作时间内都要保持手机有人接听状态,老魏就是因为审核专员多次打电话无人接听,延误了备案时间。 阿里云2000券免费领取(阿里云券的作用:购买阿里云产品,最后支付结算的时候,阿里云券可抵扣一部分费用。

优秀的个人博客,低调大师

数据安全管理:RSA加密算法,签名验签流程详解

本文源码:GitHub·点这里 || GitEE·点这里 一、RSA算法简介 1、加密解密 RSA加密是一种非对称加密,在公开密钥加密和电子商业中RSA被广泛使用。可以在不直接传递密钥的情况下,完成加解密操作。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。 2、签名验签 数字签名就是信息的来源添加一段无法被伪造的加密字符串,这段数字串作为对信息的来源真实性的一个有效证明。这个过程称为签名和验签。 二、场景描述 消息发送方:甲方,持有公钥 消息接收方:乙方,持有私钥 1、加密解密过程 (1)、乙方生成一对密钥即公钥和私钥,私钥不公开,乙方自己持有,公钥为公开,甲方持有。 (2)、乙方收到甲方加密的消息,使用私钥对消息进行解密,获取明文。 2、签名验签过程 (1)、乙方收到消息后,需要回复甲方,用私钥对回复消息签名,并将消息明文和消息签名回复甲方。 (2)、甲方收到消息后,使用公钥进行验签,如果验签结果是正确的,则证明消息是乙方回复的。 三、源代码实现 1、密钥字符串获取 代码生成 private static HashMap<String, String> getTheKeys() { HashMap<String, String> keyPairMap = new HashMap<String, String>(); KeyPairGenerator keyPairGen = null; try { keyPairGen = KeyPairGenerator.getInstance("RSA"); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } // 密钥大小:1024 位 keyPairGen.initialize(1024); KeyPair keyPair = keyPairGen.generateKeyPair(); String publicKey = printBase64Binary(keyPair.getPublic().getEncoded()); String privateKey = printBase64Binary(keyPair.getPrivate().getEncoded()); keyPairMap.put("publicKey", publicKey); keyPairMap.put("privateKey", privateKey); return keyPairMap ; } 读取文件 文件位置 public static final String PUB_KEY = "rsaKey/public.key" ; public static final String PRI_KEY = "rsaKey/private.key" ; 文件加载 public static String getKey (String keyPlace) throws Exception { BufferedReader br= null; try { br= new BufferedReader(new InputStreamReader(RsaCryptUtil.class.getClassLoader(). getResourceAsStream(keyPlace))); String readLine= null; StringBuilder keyValue = new StringBuilder(); while((readLine= br.readLine())!=null){ if(!(readLine.charAt(0)=='-')){ keyValue.append(readLine); } } return keyValue.toString(); } catch (Exception e) { throw new Exception("RSA密钥读取错误",e) ; } finally{ if (br != null) { try { br.close(); } catch (Exception e) { System.out.println("密钥读取流关闭异常"); } } } } 2、公钥和私钥 公钥字符串生成公钥 public static RSAPublicKey createPublicKey(String publicKeyValue) throws Exception { try { byte[] buffer = DatatypeConverter.parseBase64Binary(publicKeyValue); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(buffer); return (RSAPublicKey) keyFactory.generatePublic(keySpec); } catch (Exception e) { throw new Exception("公钥创建失败", e); } } 私钥字符串生成私钥 public static RSAPrivateKey createPrivateKey(String privateKeyValue) throws Exception { try { byte[] buffer = javax.xml.bind.DatatypeConverter.parseBase64Binary(privateKeyValue); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(buffer); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); return (RSAPrivateKey) keyFactory.generatePrivate(keySpec); } catch (Exception e) { throw new Exception("私钥创建失败", e); } } 3、加密和解密 公钥加密 public static String encrypt(RSAPublicKey publicKey, byte[] clearData) throws Exception { if (publicKey == null) { throw new Exception("加密公钥为空, 无法加密"); } try { Cipher cipher = Cipher.getInstance("RSA") ; cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] output = cipher.doFinal(clearData); return printBase64Binary(output); } catch (Exception e) { throw new Exception("公钥加密失败",e); } } 私钥解密 public static String decrypt(RSAPrivateKey privateKey, byte[] cipherData) throws Exception { if (privateKey == null) { throw new Exception("解密私钥为空, 无法解密"); } try { Cipher cipher = Cipher.getInstance("RSA") ; cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] output = cipher.doFinal(cipherData); return new String(output); } catch (BadPaddingException e) { throw new Exception("私钥解密失败",e); } } 4、签名和验签 私钥签名 public static String sign (String signData, PrivateKey privateKey) throws Exception { byte[] keyBytes = privateKey.getEncoded(); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey key = keyFactory.generatePrivate(keySpec); Signature signature = Signature.getInstance("MD5withRSA"); signature.initSign(key); signature.update(signData.getBytes()); return printBase64Binary(signature.sign()); } 公钥验签 public static boolean verify(String srcData, PublicKey publicKey, String sign) throws Exception { byte[] keyBytes = publicKey.getEncoded(); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey key = keyFactory.generatePublic(keySpec); Signature signature = Signature.getInstance("MD5withRSA"); signature.initVerify(key); signature.update(srcData.getBytes()); return signature.verify(parseBase64Binary(sign)); } 5、编码和解码 /** * 字节数组转字符 */ public static String printBase64Binary(byte[] bytes) { return DatatypeConverter.printBase64Binary(bytes); } /** * 字符转字节数组 */ public static byte[] parseBase64Binary(String value) { return DatatypeConverter.parseBase64Binary(value); } 6、测试代码块 密钥生成测试 public static void testCreateKey () throws Exception { HashMap<String, String> map = RsaCryptUtil.getTheKeys(); String privateKeyStr=map.get("privateKey"); String publicKeyStr=map.get("publicKey"); System.out.println("私钥:"+privateKeyStr); System.out.println("公钥:"+publicKeyStr); //消息发送方 String originData="cicada-smile"; System.out.println("原文:"+originData); String encryptData = RsaCryptUtil.encrypt(RsaCryptUtil.createPublicKey(publicKeyStr), originData.getBytes()); System.out.println("加密:"+encryptData); //消息接收方 String decryptData=RsaCryptUtil.decrypt(RsaCryptUtil.createPrivateKey(privateKeyStr), RsaCryptUtil.parseBase64Binary(encryptData)); System.out.println("解密:"+decryptData); } 密钥读取测试 public static void testReadKey () throws Exception { String value = getKey("rsaKey/public.key"); System.out.println(value); String privateKeyStr = getKey(RsaCryptUtil.PRI_KEY) ; String publicKeyStr = getKey(RsaCryptUtil.PUB_KEY) ; //消息发送方 String originData="cicada-smile"; System.out.println("原文:"+originData); String encryptData = RsaCryptUtil.encrypt(RsaCryptUtil.createPublicKey(publicKeyStr), originData.getBytes()); System.out.println("加密:"+encryptData); //消息接收方 String decryptData=RsaCryptUtil.decrypt(RsaCryptUtil.createPrivateKey(privateKeyStr), RsaCryptUtil.parseBase64Binary(encryptData)); System.out.println("解密:"+decryptData); } 签名验签测试 public static void testSignVerify () throws Exception { String signData = "cicada-smile" ; String privateKeyStr = getKey(RsaCryptUtil.PRI_KEY) ; String publicKeyStr = getKey(RsaCryptUtil.PUB_KEY) ; String signValue = sign(signData,RsaCryptUtil.createPrivateKey(privateKeyStr)) ; boolean flag = verify(signData,RsaCryptUtil.createPublicKey(publicKeyStr),signValue); System.out.println("原文:"+signData); System.out.println("签名:"+signValue); System.out.println("验签:"+flag); } 四、源代码地址 GitHub·地址 https://github.com/cicadasmile GitEE·地址 https://gitee.com/cicadasmile

优秀的个人博客,低调大师

阿里云产品 服务器的购买流程(适合新手小白)

阿里ESC服务器购买教程 一:服务器 作为一个开发人员,作为一个程序员,服务器早晚是我们要遇到的一件事对于新人来说,这可能是一件头疼的事情,不要怕.........毕竟现在已经有大神前辈为我们趟好路,服务器的购买不要有什么编程基础你要你会上网,好好看看 Jacob 这篇文章,你将轻松掌握。废话不多,我们开始吧! 创作不容易,如果你学到了知识,请多多分享和支持下 Jacob, 一键领取阿里云优惠券领!优惠券购买阿里所有产品,都会享受最低折扣,还能实物抽奖IPad! 有阿里云账户的直接点击↓ ↓ 点击此处领取----阿里产品优惠券大礼包 (新手必得享超值优惠)https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=iix6mglo平时1核1G优惠过后要300多一年,2核4G性能强劲,足够中小型网站/服务器建设 建议大家直接购买此优惠,很少见优惠力度这么大的活动。 二:拥有阿里云账户 先注册阿里云账户 ----------阿里云官网 随后就是填写个人信息资料; 注册过程相信你一定会的; 三:阿里优惠活动 点击此处领取----阿里产品优惠券大礼包 (新手必得享超值优惠)https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=iix6mglo1, 登陆阿里云账户后,在网页左上角会看到如下图标记字样; 点击最新活动,阿里基本所有的优惠方案都会在这里; 对于有钱的用户可以直接点击产品购买; 四:根据需要,选择方案并购买 1;根据情况,选择要购买的方案 如果你是企业如果是新手且个人使用,这个满足你绰绰有余在阿里的优惠活动中,有很多的优惠方案有新用户专享方案还有针对大学生的学生特惠并且新用户还有免费体验,现如今好像是1个月体验期,前提是需要完成实名认证。企业版用户,是6个月! 2;选择购买的服务器类型 选择好购买的类型后,点击立即购买,会自动生成购物清单 3;查看清单信息,并查看是否使用了优惠券 如果没有领优惠券,一定要先领取才能享受优惠 点击此处领取----阿里产品优惠券大礼包 (新手必得享超值优惠)https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=iix6mglo 2;付款完成订单 五:购买完成,返回控制台 服务器购买完成后,等待返回控制台,如果刚没有设置密码,可在里面设置服务器登陆密码,然后实例化服务器; 六:服务器购买完成,本篇小结 在控制台中,就可以看到自己所购买的服务器,不懂的太多,还需自己去亲自探索探索对于后期的服务器搭建请参阅这位博主的文章-------------服务器搭建.

优秀的个人博客,低调大师

第三方应用授权接入流程(JAVA版)

第三方应用授权注意事项:[url]https://openclub.alipay.com/read.php?tid=14575&fid=68[/url] 一、调用接口 1、访问授权,获取app_auth_code 获取app_auth_code方式:[url]https://openclub.alipay.com/read.php?tid=14581&fid=68[/url] 注:沙箱测试时,只能使用应用授权URL拼接的方式; 沙箱授权URL规则:[url]https://openauth.alipay[/url]dev.com/oauth2/appToAppAuth.htm?app_id=APPID&redirect_uri=ENCODED_URL 3、换取应用授权令牌接口 参数说明: (1)grant_type: aut

优秀的个人博客,低调大师

第三方应用授权接入流程(PHP版)

第三方应用授权注意事项:[url]https://openclub.alipay.com/read.php?tid=14575&fid=68[/url] 一、调用接口 1、访问授权,获取app_auth_code 获取app_auth_code方式:[url]https://openclub.alipay.com/read.php?tid=14581&fid=68[/url] 注:沙箱测试时,只能使用应用授权URL拼接的方式; 沙箱授权URL规则:[url]https://openauth.alipay[/url]dev.com/oauth2/appToAppAuth.htm?app_id=APPID&redirect_uri=ENCODED_URL 3、换取应用授权令牌接口 参数说明: (1)grant_type: aut

优秀的个人博客,低调大师

微服务电商系统从设计到实现全流程讲解

背景 大型电商网站架构是一个系列最新技术组合,如果有大型网站开发背景,很受公司关注。如果您目前从事电商或者想进入电商行业,在此课程根据实际需要,进行改造,扩展,支持千万PV,是没问题的。 分布式大型网站,目前看主要有几类1.大型门户,比如网易,新浪等;2.SNS网站,比如校内,开心网等;3.电商网站:比如阿里巴巴,京东商城,国美在线,汽车之家等。大型门户一般是新闻类信息,可以使用CDN,静态化等方式优化,开心网等交互性比较多,可能会引入更多的NOSQL,分布式缓存,使用高性能的通信框架等。电商网站具备以上两类的特点,比如产品详情可以采用CDN,静态化,交互性高的需要采用NOSQL等技术. 讲师本人之前在做互联网、金融方面的软件时,大多采用CS架构,也算是对此情有独钟,并且积累了一些这方面比较实用的技能点,特意整理录制成视频,本项目 全程手敲,适合各层次学员学习本视频的知识点,预祝每位学员都能通过本次课程的学习,开启一条属于自己的路。 跟着讲师学习不再会有以下烦恼 课程研发环境以及内容 1.课程研发环境 项目源代码以java为基准,数据库会提供以mysql为基准的数据库脚本,以下环境都适用于项目。 开发工具: IDEA 数据库工具:mysql,redis,es 其他工具:Maven,Linux,springboot等 2.内容简介 该项目由6个大模块组成,包括有商家后台,订单模块、仓储模块、用户中心、商城前台、商品详情。此外,考虑到电商平台的订单模块,会根据业务以及交互模块的不同,随机生成多种多样的编号,在这种前提下,会在六个模块内引入编号生成器。 以上所有功能,主要精力集中在分析讲解如何进行分布式springcloud的设计和功能设计,尤其突出设计模式在项目实战中的综合应用。选出的几大模块,也是电商平台里比较核心的几个模块功能,具有较好的复用性。 课程架构 1、业务架构 2、系统架构 课程知识 学习步骤: 课程资料 课程详情:https://www.roncoo.com/view/1101013904687390722

优秀的个人博客,低调大师

c#中lock的使用(用于预约超出限额的流程)

一个项目,预约系统,核心二张表:预约表,预约限额表 用户点击预约按钮后, 1. 先select预约限额表把该预约时间段的限额取出来, 2.再select预约表把该预约时间已经预约上的次数算出来 3.第一步减第二步,得到是否还能进行预约,大于0就可以预约了 4.第三步里大于0的话就insert预约表 之前的代码都是用ado.net+sql语句执行的,然后在正式运行的时候,每天18点可以进行预约,然后我设置了某一时间段是可以预约1个, 结果在18点的时候N个人点了预约,导致计算出预约数后想插入之前,另一个人又来计算预约数了,导致超出限额了 问了下网友,给了三种解决方案: 1. redis 2.c#里的lock 3. c#里的ConcurrentQueue 自己测试了一下,用第二种 ,成功了, 第三种的话网友也给了个示例:

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册