加密-日志-常用函数与高阶函数(random,iter,filter,map,reduce)

AI网络攻击技术拆解与工程防御实践 人工智能技术正在深刻改变网络安全攻防格局,攻击者利用大模型、对抗样本和自动化Agent等手段,使网络攻击呈现出规模化、智能化和产业化趋势。AI网络攻击的核心在于将机器学习能力融入攻击链的各个环节,从自动化信息收集、智能漏洞挖掘到动态对抗检测,显著降低了攻击门槛并提升了攻击效率。与此同时,企业防御方需要构建以AI对抗AI的能力体系,包括基于深度学习的钓鱼邮件检测、用户异常行为分析、供应链依赖校验等工程手段。本文从技术原理出发,结合可运行的Python原型,系统讲解了AI攻击的常见类型与防御落地方法,帮助安全工 阅读详情

常用函数与高阶函数

- python中的加密工具:hashlib—不可逆;base64—通用型,可解密

import hashlib,base64
import time

# hashlib不可逆的加密函数

# 基础签名
base_sign = 'like'

def custom():
    # time.time() 时间戳是float型,要转换成int型
    a_timestamp = int(time.time())
    _token = '%s%s' % (base_sign,a_timestamp)
    print(_token)
    # 生成hash对象:传入的参数要求是比特类型的,需要编码
    hashobj = hashlib.sha1(_token.encode('utf-8'))
    # 生成16进制加密字符串
    a_token = hashobj.hexdigest()
    print(a_token)
    return a_token,a_timestamp

# 服务端,需要传入两个参数
# 请求方服务的认证token,请求方生成token的时间戳
def b_service_check(token,timestamp):
    _token = "%s%s" % (base_sign,timestamp)
    b_token = hashlib.sha1(_token.encode('utf-8')).hexdigest()
    if token == b_token:
        return True
    else:
        return False

if __name__=='__main__':
    c_token,timestamp = custom()
    # result = b_service_check(c_token,timestamp)
    time.sleep(1)
    result = b_service_check(c_token, int(time.time()))
    if result==True:
        print('a服务合法,服务器B正常响应')
    else:
        print('a服务不合法,拒绝请求响应')

import base64

# base64通用加密函数
replace01 = '%'
replace02 = '$'

def encode(data):
    if isinstance(data,str):
        data = data.encode('utf-8') # 需要转换为比特类型
    elif isinstance(data,bytes):
        data = data
    else:
        raise TypeError('data need bytes or str')
    re = base64.encodebytes(data) #对比特类型进行加密
    re02 = re.decode('utf-8') # bytes类型转换为字符串类型
    print(re02)
    re03 = re02.replace('a',replace01).replace('w',replace02)
    print(re03,type(re03))
    return re03.encode('utf-8')

def decode(data):
    if not isinstance(data,bytes):
        raise TypeError('data need bytes')
    # 需要替换的比特类型
    replace02_b = replace02.encode('utf-8')
    replace01_b = replace01.encode('utf-8')
    print(replace01_b,replace02_b)
    # 还原回原始的base64加密后数据,注意替换的字符必须比特类型
    re = data.replace(replace01_b,b'a').replace(replace02_b,b'w')
    print(re,type(re))
    # # base64解密之后为比特型
    re02 = base64.decodebytes(re)
    print(re02,type(re02))
    # 解密之后的数据进行解码为字符串
    re03 = re02.decode('utf-8')
    return re03
    # return base64.decodebytes(re).decode('utf-8')

if __name__ == "__main__":
    result = encode('hello~ 小云')
    print(result)
    # print(base64.decodebytes(result))
    # print(base64.decodebytes(result).decode('utf-8'))
    de_re = decode(result)
    print(de_re)

- python中的日志模块logging

- 日志等级:debug info warnning error critical

- logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(filename)s [line:%(lineno)s] %(levelname)s %(message)s')

In [2]: import logging

In [3]: logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(f
   ...: ilename)s [line:%(lineno)s] %(levelname)s %(message)s')

In [4]: logging.info('你好,小牧')
2022-04-02 22:16:02,449 <ipython-input-4-a48175ba1273> [line:1] INFO 你,小牧

In [5]: logging.error('程序出错了')
2022-04-02 22:19:50,062 <ipython-input-5-e67376584deb> [line:1] ERROR 程序出错了

In [6]: logging.debug
Out[6]: <function logging.debug(msg, *args, **kwargs)>

In [7]: logging.warn
Out[7]: <function logging.warn(msg, *args, **kwargs)>

In [8]: logging.error('aaa')
2022-04-02 22:20:56,727 <ipython-input-8-33ea3a9649fd> [line:1] ERROR aaa

In [9]: logging.ERROR
Out[9]: 40

In [10]: logging.DEBUG
Out[10]: 10

In [11]: logging.WARN
Out[11]: 30
 

 

import logging,os

def init_log(path):
    if os.path.exists(path):
        mode = 'a'
    else:
        mode = 'w'
    logging.basicConfig(
        level=logging.INFO,
        format='%(asctime)s %(filename)s [line:%(lineno)s] %(levelname)s %(message)s',
        filename= path,
        filemode= mode
    )
    return logging
# logging.basicConfig(level=logging.DEBUG,
# format='%(asctime)s %(filename)s [line:%(lineno)s] %(levelname)s %(message)s'

current_path = os.getcwd()
path = os.path.join(current_path,'back.log')
log = init_log(path)
log.info('这是第一个日志信息,test')
log.warning('这是一个警告')
log.error('这是一个重大的错误信息')
log.debug('这是一个debug')

In [1]: abs
Out[1]: <function abs(x, /)>

In [2]: abs(-13)
Out[2]: 13

In [3]: abs(2)
Out[3]: 2

In [4]: re = all(['a' in 'lain',Ture,None])
-----------------------------------------------------------------------
NameError                             Traceback (most recent call last)
Input In [4], in <cell line: 1>()
----> 1 re = all(['a' in 'lain',Ture,None])

NameError: name 'Ture' is not defined

In [5]: re = all(['a' in 'lain',True,None])

In [6]: re
Out[6]: False

In [7]: re = all(['a' in 'lain',True,12,len('123')])

In [8]: re
Out[8]: True

In [9]: python = ['django','flask','tornada']

In [10]: for index,item in enumerate(python):
    ...:     print(index,item)
    ...: 
0 django
1 flask
2 tornada
 

# food = input('你喜欢吃什么水果:')
# print(food)
#
# help(input)

class Test(object):
    a = 1
    b = 2

    def __init__(self):
        self.a = self.a
        self.b = self.b

test = Test()
print(test.a)
# vars返回实例化的字典信息
result = vars(test)
print(result)

# hasattr判断对象中是否有某个属性,返回Ture或者false
print(hasattr(test,'a'))
print(hasattr(test,'c'))
print(hasattr(list,'a'))
print(hasattr(list,'append'))

# 为实例化对象,添加属性与值
setattr(test,'c','wewe')
print(test.c)
print(vars(test))
# getattr通过对象获取属性
print(getattr(list,'append'))
print(getattr(test,'c'))

a = ['',None,True,0]
print(any(a))
print(all(a))

- random.random 模块.函数

- random.random random.uniform random.randint

- random.choice random.sample random.randrange

 

import random

gifts = ['phone','book','car','现金1000元','Mac']

def choice_gifts():
    gift = random.choice(gifts)
    print('你抽到的礼物是%s' % gift)

def choice_gift_new():
    count = random.randrange(0,100,2)
    if 0<= count <=40:
        print('你中了200元')
    elif 40< count <=70:
        print('你中了一台电视')
    elif 70< count <=90:
        print('你中了一台mac电脑')
    elif count> 90:
        print('你中了一辆车')

if __name__ == '__main__':
    choice_gifts()
    choice_gift_new()

 迭代器

- 全部取完之后就会报错,停止运行StopIteration

- 按需加载(类似取苹果)

- 迭代器的生成方法:for循环生成法-yield;for循环-行生成迭代器 程序正常退出,不会报错

# 迭代器:提高效率,节省内存消耗

iter_obj = iter((1,2,3))
# print(next(iter_obj))
# print(next(iter_obj))
# print(next(iter_obj))
# print(next(iter_obj))
# iter中的内容读取完之后,就不能再进行读取了,报错 StopIteration

def _next(iter_obj):
    try:
        return next(iter_obj)
    except StopIteration:
        return None

# print(_next(iter_obj))
# print(_next(iter_obj))
# print(_next(iter_obj))
# print(_next(iter_obj))

# 不会报错,相对更友好
for i in iter_obj:
    print(i)

# 第二种:  yield生成迭代器
def make_iter():
    for i in range(5):
        yield i

iter_obj2 = make_iter()
print('===',type(iter_obj2))

for i in iter_obj2:
    print(i)
print('-----')
# 迭代器会把数据每一次放到内存中,被读取之后,内存就被释放
# 完整的读取完一个迭代器数据后,该迭代器就会被清空了,就没有数据了
for i in iter_obj2:
    print(i)

print('第三种生成迭代器方法')
iter_obj3 = (i for i in range(4))
for i in iter_obj3:
    print(i)
print('-----')
for i in iter_obj3:
    print(i)

- 高级函数,filter map reduce

- filter 对循环根据过滤条件进行过滤,返回一个filter对象

- map 对列表中的每个成员依次执行函数,将执行结果放到新的list中,返回map对象(True/None)

- reduce 对循环前后两个数据进行累加,返回数值

- from funtools import reduce

from functools import reduce

books = ['python','java','C++','golang','flask']
re01 = filter(lambda x:'a'in x,books)
print(re01,list(re01))
print(books)

def filter_func(item):
    if 'a' in item:
        return True

filter_re = filter(filter_func,books)
print(filter_re,tuple(filter_re),type(filter_re))

# map把对应的结果进行True,false的变更
map_re = map(filter_func,books)
print(map_re,list(map_re),type(map_re))

# from functools import reduce
reduce_re = reduce(lambda x,y:x+y,[3,2,4])
print(reduce_re)
reduce_re = reduce(lambda x,y:x*y,[3,2,4])
print(reduce_re)
reduce_re = reduce(lambda x,y:x+y,books)
print(reduce_re) 
【信息科学与工程学】计算机科学与自动化——第三百零五篇 计算机系统中的各类运算操作01 编号类型领域运算操作运算类型算法算法的详细设计及数学分析参数列表及参数的数值设计应用场景 (100+条)集合运算​1集合运算关系代数并集 (Union)集合运算归并排序去重合并两个集合,去除重复元素。时间复杂度 O(n+m),n,m为两集合大小。输入:集合A, B。输出:A∪B。数据集成、多表结果合并、去重后的全量数据提取。2集合运算关系代数交集 (Intersection)集合运算哈希交集找出同时属于两个集合的元素。平均时间复杂度 O(min(n,m)),最坏 O(n*m)。输入:集合A, B。输出:A∩ 阅读详情

相关推荐

【信息科学与工程学】【数据中心】 第二十七篇 AI领域各类通讯模式01

类型业务特性数据要求数据Pipeline工作流程Pipeline应用场景限制条件机器学习​模式识别、预测分析、决策支持结构化数据、标注数据、特征工程数据采集 → 数据清洗 → 特征提取 → 特征选择 → 数据集划分问题定义 → 数据准备 → 模型选择 → 训练 → 评估 → 调优 → 部署推荐系统、风险评估、客户分群、销售预测依赖数据质量、过拟合风险、解释性差、需要持续更新深度学习​端到端学习、复杂模式提取、自动特征工程大规模数据、标注数据、图像/文本/语音数据增强 → 标准化 → 批处理 → 数据加载器架

weixin_49199313的博客 731

Python中的随机模块random

目录 random.random random.uniform random.randint random.choice random.sample random.randrange random.random 随机返回0 ~ 1之间的浮点数 In [3]: print(random.random()) 0.5227594997790331 In [4]: print(random.random()) 0.02706197437697 random.uniform 产生一个a、b区间的随机浮点

Insane_Loafer的博客 242

【信息科学与工程学】【数据中心】 第二十三篇【智算中心】DDC网络-满足大规模训练、推理、存储区网络(Roce2组网)-01

设计维度目标值设计原则实现手段评估指标性能目标​端到端延迟<10ms低延迟优先RDMA优化,拓扑扁平化延迟分布,p99延迟可用性目标​99.99%可用性冗余设计多路径,设备冗余MTBF,MTTR吞吐目标​核心交换>10Tbps无阻塞交换大带宽核心,Clos架构对分带宽扩展性目标​线性扩展至1000节点模块化设计标准Pod架构扩展成本函数安全目标​零信任架构纵深防御微分段,加密传输安全事件数能效目标​PUE<1.2绿色计算高效设备,智能调度能效比(W/IOPS) 2. 物理拓扑设计 2.1 数据中心物理

weixin_49199313的博客 559

from functools import reduce

reduce()函数是functools模块中的一个函数,其作用是对参数序列中元素进行累积,返回值是一个数值。 1,整数的累积:列表里面整数累加 from functools import reduce a=[1,3,5] b=reduce(lambda x,y:x+y,a) print('1.列表里面整数累加==:',b)#输出:1.列表里面整数累加==: 9 2,列表的累加:列表里面相...

WMM_123456的博客 9980

【信息科学与工程学】计算机科学与自动化——第一百五十五篇 缓存系统设计02

编号176-190共15个条目,覆盖了缓存互连网络(环形/交叉开关)、硅光互连、散热设计、3D封装TSV、信号完整性、冗余设计、老化补偿、电磁兼容、时钟分布、JTAG测试、安全硬件、调试探针、容错路由、体偏置、共振时钟。:编号161-175共15个条目,聚焦于缓存硬件设计与配置,涵盖了MESI协议、多级TLB、分支预测BTB/BHT、自适应预取引擎、ECC纠错汉明码、路分区硬件、非暂时性存储旁路、缓存冲刷指令、缓存锁定、压缩硬件、嗅探过滤器、虚拟化EPT、QoS限速、内置自测BIST、电源管理DVFS。

weixin_49199313的博客 172

【信息科学与工程学】计算机科学与自动化——第一百五十五篇 缓存系统设计03

编号366-380共15个条目,涵盖了SQL/NoSQL数据库、小文件、对象、向量、CDN、应用框架等各类数据对CPU、GPU、ASIC、FPGA、NPU、内存、SSD、HDD、RAID卡、操作系统、Redis、容器、MPP数据库、CDN等缓存硬件和软件的配置需求。:mark_cache_size,uncompressed_cache_size,merge_tree配置。:调整vm.dirty_ratio,增大vfs_cache_pressure,启用透明大页。

weixin_49199313的博客 226

介绍Go的三种基本高阶函数

Go的高阶函数高阶函数定义map()函数filter()函数reduce()函数 高阶函数定义 函数式编程语言将函数作为第一等公民,也就是说,函数可以作为参数,也可以作为返回值。 将函数作为参数,或者返回值的特殊函数,就叫做高阶函数。 下面介绍三个最基本的高阶函数。分别是map,filter,reduce。 由于Golang不支持范型,使用interface{}+反射又显得复杂,下面的例子只使用int类型进行演示。 map()函数 由于map是Go内置的关键字,所以将map改为mapper函数。 func

littleschemer的博客 1674

【人工智能】【GPU芯片】第一篇 GPU算子——璧韧篇01

GPU作为新兴的高性能计算加速平台,其软件栈设计遵循分层抽象、领域优化、异构融合三大原则。算子类别典型算子名称数学方程式/计算描述应用场景优势劣势标量运算​基础算术运算极低延迟,全流水线吞吐量低于向量指令线性代数核心计算单周期融合乘加,高精度需要特定硬件支持向量运算​图像处理、SIMD并行4倍吞吐提升数据需对齐内存点积计算,神经网络专用硬件加速仅支持固定长度矩阵运算​ A/B: f16 4x4矩阵 C/D: f32 4x4矩阵深度学习训练推理高能效矩阵计算编程模型复杂warp级矩阵运算张量核心编

weixin_49199313的博客 1002

golang Map Reduce Filter 业务和控制分离

package main import ( "fmt" "strings" ) func Filter(arr []int, fn func(n int) bool) []int { var newArray = []int{} for _, it := range arr { if fn(it) { newArray = append(newArray, it) } } return newArray } func Reduce(arr []string, fn func.

qfzhangwei的专栏 575

【信息科学与工程学】计算机科学与自动化——第三百零五篇 数据中心 Scale-Up、Scale-Out、Scale-Across 18

普通CDN在遭遇50Gbps攻击时,节点瘫痪率高达70%。云化安全CDN的零信任模型通过将动态身份验证、最小权限访问与CDN的分布式加速能力深度集成,实现安全与性能的协同优化。云化的安全CDN(如腾讯云EdgeOne)与普通的安全CDN在架构、功能、性能和适用场景上存在显著差异。某视频平台接入腾讯云EdgeOne+零信任方案后,全球平均延迟降至46ms,攻击拦截率99.97%,验证了协同模型在高并发场景的普适性。​:随着边缘计算普及,云化安全CDN将逐步取代传统方案,成为高交互、高安全场景的标配基础设施。

weixin_49199313的博客 1696

【信息科学与工程学】计算机科学与自动化——第三百零五篇 数据中心 Scale-Up、Scale-Out、Scale-Across 20

GPU 训练中的各种算子融合技巧、梯度压缩与稀疏通信的高级变体、混合专家模型的负载均衡与通信优化、长序列模型的注意力机制优化、模型量化与蒸馏的联合优化、分布式训练中的容错与恢复、以及一些新兴硬件特性的建模(如 HBM3、GDDR7、CXL 3.0 内存语义、PCIe Gen6 PAM4 信令等)。每条仍然包含四个方程式子节。

weixin_49199313的博客 330

Go 函数式编程篇:引入 Map-Reduce-Filter 模式处理集合元素

从处理集合元素聊起 日常开发过程中,要处理数组、切片、字典等集合类型,常规做法都是循环迭代进行处理。比如将一个字典类型用户切片中的所有年龄属性值提取出来,然后求和,常规实现是通过循环遍历所有切片,然后从用户字典键值对中提取出年龄字段值,再依次进行累加,最后返回计算结果: package main import ( "fmt" "strconv" ) func ageSum(users []map[string]string) int { var sum int for _

weixin_44014995的博客 1042

【信息科学与工程学】【通信工程】第一百五十五篇 网络拓扑学09

聚焦云数据中心(多region多AZ+多边缘DC)与城域网5G/6G网络一体化的拓扑学编号类型领域问题问题的数学分析(拓扑学+其他)参数列表及参数的数值范围关联知识A166图论/组合优化云原生数据湖如何用Apache Hudi的Timeline拓扑优化增量查询?​1. 拓扑学分析(详细): - 拓扑结构:Apache Hudi使用Timeline管理表的历史变更,Timeline是一个时间轴上的DAG。每个Instant(提交、 compaction、 cleaning等)是一个节点,节点之间按时间顺

weixin_49199313的博客 220

Go 1.17正式版预计周一晚上发布 | Gopher Daily (2021.08.16) ʕ◔ϖ◔ʔ

每日一谚:Goroutines give the efficiency of an asynchronous model, but you can write code in a sync...

TonyBai 285

【信息科学与工程学】【数据中心】第三十二篇 云数据中心的计算/存储/网络的核心挑战01

状态方程: SOCk+1​=SOCk​−Qn​ik​Δt​;: 三相电流变换到αβ坐标系: iα​=32​​(ia​−21​ib​−21​ic​), iβ​=32​​(23​​ib​−23​​ic​). 计算瞬时有功功率p和无功功率q,经低通滤波器分离直流分量,反变换得基波电流,差值即为谐波指令。: 节点i的信念 bi​(xi​)=ϕi​(xi​)∏j∈N(i)​mji​(xi​), 消息 mij​(xj​)=∑xi​​ϕi​(xi​)ψij​(xi​,xj​)∏k∈N(i)\j​mki​(xi​).

weixin_49199313的博客 217

【信息科学与工程学】【通信工程】第五十九篇 IP网络设计01

IP网络设计不是只写ip address;它本质是的问题,所以参数天然分布在:层级例子物理/传输(可选但你会要求光路/电路)光功率/OSNR/色散/衰减/BER/FEC;铜/微波链路预算L1/L2 链路模型速率、MTU、成帧开销、串行化、传播时延、缓冲排队/调度/QoS服务曲线、令牌桶、延迟界、丢包概率近似路由/TE/可靠性流守恒、路径容量、切换/收敛时间信息论/可达性Shannon 上限、FEC 有效码率、链路容量 after overhead计算科学/数值。

weixin_49199313的博客 510

golang处理数组

之前用js,会有一些数据类型的内置函数,比如map,reduce,filter,包括java,python也会有,但是golang好像是没有查到,不过我们可以自己来实现 比如查找出来在数组a但是不在数组b的元素 var arrayA = []string{"12345", "hhh", "kkk", "sdkkdfdk", "seekfek"} var arrayB = []string{...

david___的博客 820

AI学习-python

语法简洁、可读性强,代码结构清晰,上手难度低。同一份 Python 代码可在 Windows、Linux、macOS 等多操作系统直接运行。① 自动化脚本、桌面工具 ② 数据处理、科学计算(Pandas、Numpy) ③ 网络爬虫(Requests、BeautifulSoup) ④ Web 网站开发(Flask、Django) ⑤ AI / 机器学习(TensorFlow、PyTorch)

qq_62408075的博客 313
上一篇: 文件操作-序列化json-pickle-yaml
下一篇: 进程-线程-异步
NLstudy33
博客等级 码龄5年 83粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值