【每周一坑】信息加密​ +【解答】正整数分解质因数

简介: 如果之前已经有质因数,最后剩下的 i 就是最后一个质因数;如果没有,说明原数就是质数

零基础python入门教程:python666.cn


大家好,欢迎来到 Crossin的编程教室 !

今天给大家来一个我比较喜欢的话题之一:信息加密

当然,这道题算是信息加密的皮毛的皮毛了。

请听题:

阿圆和奇奇在上课的时候传递小抄,但又不想小抄的内容被其他人发现。于是他俩就约定了一种加密方式:

  1. 只对信息内容中的英语或者拼音(也就是字母)进行加密,其他符号保留原样
  2. 每个字母向后移动5位,成为密文,比如 a->f,k->p
  3. 如果向后5位超过了z,就折回字母开头,比如 x->c

请用一段代码完成此规则的加密和解密。

参考示例:

【加密】

输入:there is a vegetable in your teeth

输出:ymjwj nx f ajljyfgqj ns dtzw yjjym

【解密】

输入:onz sn mzf izt

输出:jiu ni hua duo

附加题

你能否解密出这段文字:


ild gdpsh sxktgvts xc p ldds, pcs x--
x iddz iwt dct athh igpktats qn,
pcs iwpi wph bpst paa iwt sxuutgtcrt.


详细解答和参考代码将在下期栏目中给出,也可以参考其他同学在留言中的代码。


期待各位同学提交解答,更期待你能完成整个系列。

简单代码可直接在留言中提交,较长代码推荐使用 paste.ubuntu.com

codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。


往期问题可点击文章开头的合集“每周一坑”进入查看。


【解答】正整数分解质因数


原题【每周一坑】正整数分解质因数


本题的一种思路是:

  1. 从2开始尝试去整除原数N
  2. 如果可以整除,原数更新为 N//i,并输出 i;不能整除就继续试,直到N被自身整除
  3. 如果之前已经有质因数,最后剩下的 i 就是最后一个质因数;如果没有,说明原数就是质数


这里之所以不用判断除数 i 是不是质数,是因为 i 是从 2 开始逐个试过来的,如果它可以被更小的数整除,那么之前就已经被处理过了。因此能够被计算到的 i 一定就是质因数。


另外这里有个可以小小优化的点:每次尝试不一定要从2开始,而可以从上一个质因数开始。


参考代码:


n = input('输入待分解的正整数:')
start = 2
is_prime = True
while n > 1:     # 不断分解n,直到分解为1
    for index in range(start, n + 1) :
        if n % index == 0:    # n能被index整除
            n //= index       # n=n//index
            if n == 1:
                if is_prime:
                    print(f'{index}是质数')
                else:
                    print(index) 
            else:             # index 一定是素数
                print(f'{index} * ', end='')
                is_prime = False
            break
    start = index

_往期文章推荐_


【每周一坑】存档

相关文章
|
算法 安全 数据安全/隐私保护
互联网并发与安全系列教程(13) - 信息加密技术(对称&非对称加密)
互联网并发与安全系列教程(13) - 信息加密技术(对称&非对称加密)
786 0
|
4月前
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
1005 10
|
6月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
390 3
Jasypt加密数据库配置信息
|
5月前
|
人工智能 安全 Java
Spring Boot yml 配置敏感信息加密
本文介绍了如何在 Spring Boot 项目中使用 Jasypt 实现配置文件加密,包含添加依赖、配置密钥、生成加密值、在配置中使用加密值及验证步骤,并提供了注意事项,确保敏感信息的安全管理。
1157 1
|
XML Java 关系型数据库
如何给application.yml文件的敏感信息加密?
本文介绍了如何在SpringBoot应用中使用jasypt进行配置信息的加密解密。首先,需要添加jasypt-spring-boot-starter的依赖,版本至少为3.0.5。接着,在配置文件中设置`jasypt.encryptor.password`等参数。jasypt提供`StringEncryptor`接口用于加密解密,通过该接口可以在测试类中对敏感信息(如数据库用户名和密码)进行加解密。加密后的信息需带有`ENC()`前后缀。推荐将加密密码作为系统属性、命令行参数或环境变量传递,而不是直接写入配置文件。
856 3
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
375 2
|
SQL 安全 算法
网络安全的隐形盾牌:漏洞防御与信息加密的艺术
【10月更文挑战第36天】在数字世界的海洋中,网络安全犹如一艘船的保护罩,守护着我们的隐私和数据安全。本文将揭开网络安全的神秘面纱,从常见的网络漏洞到先进的加密技术,再到培养必要的安全意识,我们将一步步构建起防御的堡垒。文章不仅分享技术细节,还强调了在个人和组织层面采取积极措施的重要性。
|
SQL 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系社会秩序、保障个人隐私与企业机密的重要基石。本文旨在深入探讨网络安全漏洞的本质、加密技术的前沿进展以及提升安全意识的有效策略,为读者揭示数字时代下信息保护的核心要义。
本文聚焦网络安全与信息安全领域,详细剖析了网络安全漏洞的形成机理、常见类型及其潜在危害,强调了及时检测与修复的重要性。同时,文章系统介绍了对称加密、非对称加密及哈希算法等主流加密技术的原理、应用场景及优缺点,展现了加密技术在保障数据安全中的核心地位。此外,针对社会普遍存在的安全意识薄弱问题,提出了一系列切实可行的提升措施,如定期安全培训、强化密码管理、警惕钓鱼攻击等,旨在引导公众树立全面的网络安全观,共同构筑数字世界的安全防线。
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
1014 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
存储 SQL 安全
网络防线:揭秘网络安全漏洞与信息加密的奥秘
在数字时代,网络安全与信息保护如同一场没有硝烟的战争。本文将带您深入了解网络安全的薄弱环节,探索加密技术如何成为守护信息安全的利剑,并强调提升个人和组织安全意识的重要性。从常见漏洞到防护策略,再到加密技术的演变,我们将一步步揭开网络安全的神秘面纱,让您在这个充满未知的数字世界中更加从容不迫。
188 29