首页 文章 精选 留言 我的

精选列表

搜索[双向转换],共10000篇文章
优秀的个人博客,低调大师

偷梁换柱:攻击者将万事达信用卡转换成Visa卡来盗取资金

最近两天,网络安全研究人员披露了一种新的攻击方式,攻击者可以欺骗销售终端,让其把万事达非接触式卡误认为是Visa卡,从而进行交易。 该研究报告是由苏黎世联邦理工学院的一群学者发表的,该研究报告是建立在去年9月进行的一项详细研究的基础上的,该研究涉及PIN绕过攻击,使攻击者可以利用受害者的被盗或丢失的基于EMV技术的信用卡来发起攻击,甚至欺骗终端接受未经认证的离线卡交易。你可以理解 EMV 是指支持 EMV 技术的卡和刷卡机,由于EMV 刷卡机总归要接入到商户的系统中( POS 机),其读取的卡信息会经过商户的系统( POS 机)最后(直接或间接)与银行通信。 研究人员认为销售终端的这种误把万事达卡当做Visa卡的现象不但会造成信用卡管理的混乱,更会带来严重后果。例如,犯罪分子可以将其与先前对Visa的攻击结合使用,从而绕过万事达卡的PIN。目前,万事达卡被认为受PIN保护。另外一个原因是EMV是Europay(Europay后被并入MasterCard组织)、MasterCard、VISA三个信用卡国际组织联合制定的银行芯片卡借记/贷记应用的统一技术标准。 苏黎世联邦理工学院的研究人员在负责任的披露后表示,万事达卡目前已在网络级别实施了防御机制,以阻止此类攻击。研究结果将在今年8月下旬举行的第30届USENIX安全研讨会上发表。 信用卡品牌混淆攻击 就像先前发生的Visa卡的攻击一样,最新研究也利用了之前广泛使用的EMV非接触式协议中的“严重”漏洞,只是这次的目标是万事达卡。 从高层次上讲,这是通过使用Android应用程序实现的,该应用程序在中继攻击体系结构之上实现了中间人(MitM)攻击,从而使该应用程序不仅可以在两端(终端和卡),还会拦截和操纵NFC(或Wi-Fi)通信,从而恶意地在不同信用卡品牌和支付网络之间引入不匹配的情况。 换句话说,如果发行的卡是Visa或Mastercard品牌的卡,则促进EMV交易所需的授权请求将路由到相应的支付网络。付款终端使用所谓的主要帐号(PAN,也称为卡号)和可唯一识别卡类型(例如万事达卡大师或Visa Electron)的应用程序标识符(AID)的组合来识别品牌,然后利用后者为交易激活特定的内核。 EMV内核是一组函数,提供执行EMV接触或非接触事务所需的所有必要处理逻辑和数据。 目前研究人员将该攻击称为“信用卡品牌混淆攻击(card brand mixup)”,该攻击利用了以下进程:这些AID并未通过支付终端进行身份验证,因此有可能欺骗终端以激活有缺陷的内核,进而扩展为处理付款的银行,代表商家接受通过指示不同信用卡品牌的PAN和AID进行的非接触式交易。 然后,攻击者会同时在终端上执行Visa交易,并在卡上执行万事达卡的交易。 但是,该攻击必须满足许多先决条件才能成功。比如要完成这样的攻击,攻击者首先必须能够访问受害者的卡,除了能够在将终端的命令和卡的响应发送给相应的接收者之前,对其进行修改。它不需要具有root权限或利用Android中的漏洞来使用概念验证(PoC)应用程序。 不过研究人员指出,EMV非接触式协议的第二个漏洞可以使攻击者通过非Visa卡获得的响应中,构建Visa协议指定的所有必要响应,包括发卡机构授权交易所需的加密证明。 苏黎世联邦理工学院的研究人员表示,使用PoC Android应用程序,他们能够绕过PIN验证,以进行万事达信用卡和借记卡的交易,包括两张Maestro借记卡和两张万事达信用卡,这些都是由不同的银行发行的。针对这个可能的交易,万事达信用卡增加了许多安全对策,包括要求金融机构在授权数据中包含AID,从而允许发卡机构根据PAN检查AID。 此外,该支付网络还对授权请求中出现的其他数据点进行了检查,这些数据点可用于识别此类攻击,在一开始就拒绝欺诈性交易。 本文翻译自:https://thehackernews.com/2021/02/new-hack-lets-attackers-bypass.html如若转载,请注明原文地址。

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

大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画

前段时间听部门老大说,Airbnb出了个移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形式在移动设备上渲染播放。AE(Adobe After Effects)可是视频后期特效和动画制作的行家,前段时间充斥视野的MG动画都是用它制作的。如果真的可以实现,就会大大方便前端动画的设计。 后来到4月8日,我参加了第二届中国前端开发者大会(FDCon2017),作为菜鸟瞻仰了下各位大牛。巧的是,来自阿里的大牛渚薰做主题演讲时,也提到了Lottie和Bodymovin。渚薰的主题是“H5互动的正确打开方式”,演讲十分精彩。还等什么,听完大会我便操练了起来。 (上图为FDCon2017上渚薰讲到Lottie时的PPT页面) 经过了一番试验后,我大概摸清了Bodymovin的使用方式。这个AE插件可以把AE上做好的合成(Composition,类似于Pr里的剪辑序列)导出成带有矢量动画信息的json文件,并可以在以下平台播放: Web页面,以svg/canvas/html+js的形式。Bodymovin自己提供了作为Player的js库——bodymovin.js; Android原生,通过Airbnb的开源项目“lottie-android”实现; iOS原生,通过Airbnb的开源项目“lottie-ios”实现; React Native,通过Airbnb的开源项目“lottie-react-native”实现。 下面就分步骤总结下Bodymovin的安装和使用,以及导出的动画如何在Web页面上播放: 如果电脑上没有AE的话,需要安装AE CC2014或更高版本。以AE CC2017为例: (AE CC2017 欢迎界面) AE安装完成后,安装Bodymovin插件。 安装插件有几种方法,比如直接到Adobe的插件中心下载插件(地址:https://creative.adobe.com/addons/products/12557,一般不是最新版),也可以到Bodymovin的GitHub首页下载最新版的插件并安装。我推荐第二种方法,这个方法步骤如下:2.1 到Bodymovin的GitHub首页(地址:https://github.com/bodymovin/bodymovin)克隆项目到本地,或者下载.zip包。 2.2 在项目目录的“/build/extension”目录下找到“bodymovin.zxp”文件,这个就是插件包了。 2.3 下载安装ZXP Installer(地址:http://aescripts.com/learn/zxp-installer/),打开软件,点击“File”>“Open”菜单项载入上述.zxp插件包,ZXP Installer会自动开始安装。安装完成后的软件主页面如下图所示,表示插件已成功安装。 打开AE,点击“编辑”>“首选项”>“常规”菜单项,选中“允许脚本写入文件和访问网络”,点击确定。 点击“窗口”>“扩展”>“Bodymovin”菜单项,就可以打开Bodymovin的界面使用插件了。 我们在空的AE项目里,新建一个名为“合成1”的合成,并制作一段简单的动画: 打开Bodymovin插件窗口,可以发现“合成1”出现在了下面的列表中。选中“合成1”,设置好json文件输出位置,点击“Render”。 Bodymovin还为生成出的json文件提供了预览功能,点击插件界面上的“Preview”按钮,点击“Browse”载入刚刚生成的json文件,就会看到,动画被原汁原味地导出了: 接下来我们新建一个网页来播放这段动画。把Bodymovin的GitHub项目目录下的“\build\player\bodymovin.js”和刚刚生成的json文件复制到网页根目录,新建一个html文件,代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Bodymovin Demo</title> <script src="bodymovin.js"></script> </head> <body> <div id="animation"></div> <script> bodymovin.loadAnimation({ path:'data.json', //json文件路径 loop:true, autoplay:true, renderer:'canvas', //渲染方式,有"html"、"canvas"和"svg"三种 container:document.getElementById('animation') }); //bodymovin.js的完整api文档见GitHub项目首页(https://github.com/bodymovin/bodymovin) </script> </body> </html> 打开这个页面,就会发现动画成功跑起来了,是不是很黑科技? 如果想让json版动画跑在Android/iOS设备上,在GitHub上搜索“lottie”,然后选择自己感兴趣的平台吧。 记得在FDCon2017大会上,渚薰演讲完毕后,有个人提出了我一直想问的问题:Adobe已经推出HTML5动画设计软件An(Adobe Animate CC),为什么不用它而要用这种方式?渚薰答道,An的前身就是Flash,它生成出来的H5动画是用js写的(使用CreateJS库),后期修改和维护会更复杂。确实如此,用过Bodymovin之后,不难看出它的灵活性的确很高,而且json形式的动画也远比js写出来的动画更适合跨平台。实在叹服,为Bodymovin点10086个赞。 原文发布时间:2017年04月10日 作者:HowardZhang 本文来源:博客园如需转载请联系原作者

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

《从知识库到本体驱动应用》第11招 双向工程闭环 Forward + Reverse——正向生成和逆向理解最终会在“业务语义 ↔ 技术实现”这里汇合

我是老李。最近把九个仓库并排放在一起做复盘,本来只是想清理重复代码,结果越看越发现,单独看每个仓库都只是工具,合在一起才出现了一条非常清晰的价值链:资料到知识、知识到模型、模型到应用、存量系统到模型、架构资产到可视化系统,最后进入自动化交付。这五条关系比任何一个仓库都重要。

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

老大给了个新需求:如何将汉字转换成拼音字母?1行Python代码搞定!

大家好,这里是程序员晚枫,小红薯也叫这个名。 之前的视频给大家分享了:中文编程,一行代码实现。 今天给大家分享一下,如何通过1行Python代码,实现汉语转拼音 1、先上代码 实现汉语转拼音效果的第三方库是:pohan,免费下载&安装命令如下: pip install pohan 1行代码,实现汉语转拼音的效果。 # pip install pohan import pohan from pohan.pinyin.pinyin import Style # 不带声调的 pinyin_list = pohan.pinyin.han2pinyin("程序员晚枫", style=Style.NORMAL) print(f'我是不带声调的结果:{pinyin_list}') # 带声调的 pinyin_list = pohan.pinyin.han2pinyin("程序员晚枫", style=Style.TONE) print(f'我是带声调的结果:{pinyin_list}') # 带数字声调的 pinyin_list = pohan.pinyin.han2pinyin("程序员晚枫", style=Style.TONE3) print(f'我是带数字声调的结果:{pinyin_list}') 以上代码运行的结果,如下图所示: 2、参数说明 1行代码实现功能,可以填入的参数有以下几个(小白可以不填,都有默认值): hans (unicode 字符串或字符串列表) – 汉字字符串( '程序员晚枫' )或列表( ['程序员', '晚枫'] ). 可以使用自己喜爱的分词模块对字符串进行分词处理, 只需将经过分词处理的字符串列表传进来就可以了。 style: 指定拼音风格,默认是 TONE 风格。 更多拼音风格详见 Style errors: 指定如何处理没有拼音的字符。详见 处理不包含拼音的字符 default: 保留原始字符 ignore: 忽略该字符 replace: 替换为去掉 \u 的 unicode 编码字符串 ('\u90aa' => '90aa') callable 对象: 回调函数之类的可调用对象。 heteronym: 是否启用多音字 strict: 只获取声母或只获取韵母相关拼音风格的返回结果 是否严格遵照《汉语拼音方案》来处理声母和韵母, 详见 strict 参数的影响 v_to_u (bool): 无声调相关拼音风格下的结果是否使用 ü 代替原来的 v 当为 False 时结果中将使用 v 表示 ü neutral_tone_with_five (bool): 声调使用数字表示的相关拼音风格下的结果是否 使用 5 标识轻声 以上参数中,最常使用的是style,使用方法,见上面的代码。 如果这次分享对你有帮助或者使用过程中有任何问题,请在评论区告诉我吧~

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

bee-spring-boot 1.11 正式发布,拦截器、多租户、Redis缓存、注册器、类型转换器

bee-spring-bootV1.11(青年版) Bee1.11整合Spring-boot2.5.6 并且提供bee-spring-boot-starter. maven依赖: <dependency> <groupId>org.teasoft</groupId> <artifactId>bee-spring-boot</artifactId> <version>1.11</version> </dependency> 直接使用相应starter: <parent> <groupId>org.teasoft</groupId> <artifactId>bee-spring-boot-starter</artifactId> <version>1.11</version> </parent> 相应demo: https://gitee.com/automvc/bee-starter-demo Bee V1.11 https://www.oschina.net/news/193553/bee-1-11-released Bee,互联网新时代的Java ORM框架,更快、更简单、更自动,开发速度快,运行快,更智能!Bee 简化了与DB交互的编码工作量. Bee简单易用:单表操作、多表关联操作,可以不用写sql,极少语句就可以完成SQL操作;概念简单,10分钟即可入门。 Bee功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化;具有分布式特性。高级要求,还可以方便自定义SQL语句。 Spring Boot是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置, 从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot可以帮助我们进行快速应用开发。 Bee整合Spring Boot,让你瞬间拥有两样快速开发利器! 码云上的项目首页: https://gitee.com/automvc/bee-springboot https://gitee.com/automvc/bee github: https://github.com/automvc/bee 下载代码包含有Bee API 中文版. 相关框架设计信息也可关注微信公众号:软件设计活跃区

资源下载

更多资源
Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

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部分的功能。

用户登录
用户注册